请有人帮我解决这个问题的正确语法。带条件的mysql rand
我有,table1
:
id, int
on, tinyint - this can be 0 or 1
name, varchar(2000)
从这个我想获得具有on
设置为1
我应该使用什么查询10个随机id
/name
?
请有人帮我解决这个问题的正确语法。带条件的mysql rand
我有,table1
:
id, int
on, tinyint - this can be 0 or 1
name, varchar(2000)
从这个我想获得具有on
设置为1
我应该使用什么查询10个随机id
/name
?
SELECT id, name FROM table1 WHERE `on` = 1 ORDER BY RAND() LIMIT 0,10;
啊!我错过了极限,而且mysql也不喜欢名为'on'的列。谢谢! – David19801 2011-04-12 09:41:47
@MRW:在WHERE = 1上使用反引号,因为on是关键字 – Marco 2011-04-12 09:50:43
什么是反引号?并且是他们在任何地方的不良关键工作清单? – David19801 2011-04-12 09:56:28
试试这个:
SELECT id,name FROM table1 WHERE `on`=1 ORDER BY RAND() LIMIT 0,10
你忘记了结果数量的限制。 – 2011-04-12 09:41:48
谢谢,编辑:) – 2011-04-12 09:42:57
SELECT `id`, `name` FROM `table1`
WHERE `on` = 1
ORDER BY RAND()
LIMIT 0,10
使用反引号分隔字段名称。在这种情况下,您实际上的至WHERE
条件,因为“ON”是关键字。
错误是由“上”不是一个可以接受的列名称的MySQL我觉得...(惊讶没有人发现了!) – David19801 2011-04-12 09:45:37
没关系。你应该使用反引号来分隔你的字段名称。既然你没有向我们展示你到目前为止所做的尝试,我们无法猜测你没有这样做。 – 2011-04-12 09:48:04