我有一个Db查询应返回值:
$gbe=mysql_query("SELECT userid FROM `gift_stage` WHERE amount='500' AND (`assign` > '1' AND `assign` < '18') AND userid !='".$class_session->isuser()."' ORDER BY id ASC LIMIT 1");
但它没有显示任何值,但当我替换AND (
分配> '1' AND
分配< '18')
并AND (
分配> '1')
时,它会给出预期的结果。但是我没有得到问题的位置,因为数据库中assign
alread的值为'13'
请帮帮我们
所有字段都是varchar
答案 0 :(得分:3)
删除括号并比较数字而不是文本字符串
SELECT userid
FROM `gift_stage`
WHERE amount='500'
AND `assign` > 1
AND `assign` < 18
AND userid !='".$class_session->isuser()."'
ORDER BY id ASC LIMIT 1
请don't use mysql_*
functions in new code。 不再维护它们,而是officially deprecated 。请参阅red box?请改为了解prepared statements,并使用PDO或MySQLi。 This article将帮助您确定哪个。
答案 1 :(得分:2)
不要在你的数字上加上引号,否则它们将被视为varchars。