我有一个用于查询用户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
不在任何列中,我想更新uid2
或uid3
或uid4
或0000000000000.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/