我似乎无法从以下查询中获取下表中**
标记行上方的4行:
SELECT * from table
WHERE created_at > '2018-04-19 23:56:35'
AND id = '01H5E4sUTlwV2yk2cdGlodr3MBf8acABsfBb'
| id | title | created_at
-----------------------------------------------------------------------
| 001w2cwfoqzp8F3Gf6jCwITgNRtvHiBvmdwb | My Post | 2018-04-20 02:43:20
| 0CVgGz5kUESVJmG4LYIFW2EHtjzKnEClfoPR | My Post | 2018-04-19 23:56:35
| 0A1O9Vjg6GwrcNBzi46zxbysSuRIDeIXKMku | My Post | 2018-04-19 23:56:35
| 03mMiy5iQ3sGD8efpTArxvaqakoQkG21WC2r | My Post | 2018-04-19 23:56:35
**| 01H5E4sUTlwV2yk2cdGlodr3MBf8acABsfBb | My Post | 2018-04-19 23:56:35
| 01Rm9WTLkcce5qcRLBWlpwIALItKMixnjhu6 | My Post | 2018-04-19 23:56:35
| 03bBfzdaXCc13lLVIOjgCvYUUl3bKtkaz1za | My Post | 2018-04-19 23:56:35
| 01A3ulgrx3rvH5nB5DdzYNe8CBc8vf7rEjWJ | My Post | 2018-04-19 23:56:34
| 00Ipdlt48PPzgERSOXbloi71qYTUB5ulHifR | My Post | 2018-04-19 23:56:34
| 02klLu3OfyDYmlEgN7usy2esHVV1UUJF65FP | My Post | 2018-04-19 23:56:34
| 04WXSHIUVLhsbjwMAa78aW7rw6nYUV8HTusN | My Post | 2018-04-19 23:56:34
我知道如果它是整数而不是id
,可以在uuid
上轻松完成。但有没有办法用uuid
和timestamp
组合来完成它,因为我的查询没有返回任何行?
答案 0 :(得分:2)
这个怎么样:
SELECT * from table
WHERE created_at > '2018-04-19 23:56:35'
OR id = '01H5E4sUTlwV2yk2cdGlodr3MBf8acABsfBb'
(用OR替换AND。)
AND
只匹配满足所有要求的行,即满足AND
左侧表达式的行,同时满足表达式AND
的右侧。只有一行满足AND
右侧的要求,即您正在测试的给定id
的行。所以,如果你不清楚这一点,那么你需要梳理一下布尔代数的基础知识。
答案 1 :(得分:1)
表达式'2018-04-19 23:56:35' > '2018-04-19 23:56:35'
总是假的。这是因为2018-04-19 23:56:35
等于2018-04-19 23:56:35
并且永远不会超过自身,请尝试这样做:
SELECT * from table
WHERE created_at >= '2018-04-19 23:56:35'
您需要大于或等于运算符>=
,而不是大于运算符>
。
你不需要WHERE caluse中的id字段,因为它似乎是一个具有唯一值的列,假设你在该列上有唯一索引,它总是只返回一个记录。