我有一个mysql查询,我用它来检查用户id是否存在,我试图简化这个代码,或者至少使它更好。
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
if值 0000000000000.00000000
不在任何列中
1条答案
按热度按时间3qpi33ja1#
你能公布数据库的完整结构吗。如果你需要找到水平。然后您应该稍微更改查询以获得结果。
无需将其作为字符串0.0000000和etc进行比较将其转换为int从levels where(cast(uid1 as int))中选择*=0)且uid1不为null且(强制转换(uid1为int)=0)和uid2不为null和(强制转换(uid1为int)=0)且uid3不为null且(强制转换(uid1为int)=0)且uid4不为空且级别\u唯一\u id='1'