我有一个具有以下结构和数据的数据库表:
| 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"的行中的ALL+内容包含单词"elgrant"的行的ALL结果将按日期排序为DESCENDING??
我试过了,但查询似乎有问题,而且不是按日期排序的,有时结果是双倍的。
SELECT * FROM ms_writing
WHERE username='elgrand' OR content LIKE '%elgrand%'
ORDER BY date DESC
您需要一个AND
-
SELECT
*
FROM
ms_writing
WHERE
username = 'elgrand' AND
content LIKE '%elgrand%'
ORDER BY
date DESC
此查询将返回用户名为elgrand
、内容为字符串elgrand
的所有行。
请使用AND
而不是OR
SELECT * FROM ms_writing WHERE username='elgrand' AND content LIKE '%elgrand%' ORDER BY date DESC
在两条记录具有相同数据之前,结果永远不会翻倍。
您只需要使用AND而不是OR。因此,您的查询将是:
SELECT * FROM ms_writing
WHERE username='elgrand' AND content LIKE '%elgrand%'
ORDER BY date DESC
另外,还有一件事要告诉你,不要使用保留字作为数据库字段名称,例如日期、顺序等。这可能会造成歧义。