Mysql 如何简化此SQL查询2
我有一个MySQL查询,我用它来检查用户id是否存在,我正试图简化这段代码,或者至少让它变得更好Mysql 如何简化此SQL查询2,mysql,Mysql,我有一个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
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:我知道
级别的唯一id
,但我想更新uid1
或uid2
或uid3
或uid4
如果值0000000000000.00000000
不在任何列中可以发布数据库的完整结构。如果你需要找到关卡。然后您应该稍微更改查询以获得结果
无需将其作为字符串0.0000000等进行比较
**将其转换为Int**
从以下级别中选择*(强制转换(uid1为Int)!=0)和uid1不为空以及(强制转换(uid1为Int)!=0)和uid2不为空以及(强制转换(uid1为Int)!=0)和uid3不为空以及(强制转换(uid1为Int)!=0)uid4不是空的,level_unique_id='1'添加一个防止重复的唯一键是一种更好的方法。mysql函数被降级,而不是在当前版本的PHP中。使用mysqli或PDO函数,并使用参数化查询来避免SQL注入。