我有一个包含以下结构和数据的数据库表:
| username | content | date |
elgrand hello 2013-08-08 17:04:07
alphard hey,how are you elgrand? 2013-08-08 17:50:22
elyson I don't have any idea 2013-08-08 18:14:31
是否可以选择用户名为'elgrand'的所有行+内容包含'elgrand'字样的所有行 结果将按日期排序为DESCENDING ??
我已经尝试了这个但看起来查询有问题并且没有按日期排序,有时结果是双倍。
SELECT * FROM ms_writing
WHERE username='elgrand' OR content LIKE '%elgrand%'
ORDER BY date DESC
答案 0 :(得分:1)
您需要AND
-
SELECT
*
FROM
ms_writing
WHERE
username = 'elgrand' AND
content LIKE '%elgrand%'
ORDER BY
date DESC
此查询将返回用户名为elgrand
且其内容包含字符串elgrand
的所有行。
答案 1 :(得分:0)
请使用AND
代替OR
SELECT * FROM ms_writing WHERE username='elgrand' AND content LIKE '%elgrand%' ORDER BY date DESC
结果永远不会翻倍,直到2条记录具有相同的数据
答案 2 :(得分:0)
您只需使用AND而不是OR。所以你的查询将是:
SELECT * FROM ms_writing
WHERE username='elgrand' AND content LIKE '%elgrand%'
ORDER BY date DESC
另外还有一件事情是您的信息,而不是使用保留字作为数据库字段名称,例如日期,订单等。这可能会产生一种歧义。