我有一个用于查询用户ID是否存在的MySQL查询,我正在尝试简化此代码,或者至少使其变得更好。

mysql_query("SELECT * FROM levels WHERE
                ('0000000000000.00000000' != (uid1)) AND uid1 IS NOT NULL
            AND ('0000000000000.00000000' != (uid2)) AND uid2 IS NOT NULL
            AND ('0000000000000.00000000' != (uid3)) AND uid3 IS NOT NULL
            AND ('0000000000000.00000000' != (uid4)) AND uid4 IS NOT NULL
            AND level_unique_id = '$level_unique_id'");


例如,如果uid3不是null而不是0000000000000.00000000,则:

mysql_query("UPDATE `levels` SET `uid3` = '$UNIQUE_ID'  WHERE `levels`.`level_unique_id` = '$level_unique_id'");


如何简化此SQL查询?

描述1:我知道level_unique_id,但是如果值uid1不在任何列中,我想更新uid2uid3uid40000000000000.00000000

最佳答案

您可以发布数据库的完整结构吗?如果需要查找级别。然后,您应该对查询进行少许更改以得到结果。

无需将其与字符串0.0000000等进行比较
**将其转换为Int **
从级别(强制转换(uid1作为Int)!= 0)和uid1不为空AND(强制转换(uid1作为Int)!= 0)和uid2不为空AND(强制转换(uid1作为Int)!= 0) AND uid3不为空AND(强制转换(uid1为Int)!= 0)AND uid4不为空AND level_unique_id ='1'

关于mysql - 如何简化此SQL查询2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50077889/

10-15 18:19