如何简化sql查询2

irlmq6kh  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(261)

我有一个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 不在任何列中

3qpi33ja

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'

相关问题