Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何简化此SQL查询2_Mysql - Fatal编程技术网

Mysql 如何简化此SQL查询2

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查询,我用它来检查用户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:我知道
级别的唯一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注入。