【发布时间】:2018-11-30 16:04:38
【问题描述】:
我有
SELECT s.*
FROM shop
WHERE s.family IN (SELECT s2.family FROM shop s2 WHERE (s2.money like "%k%"))
它确实返回包含 k 字母的“票”,但此外它还返回所有其他没有“k”的结果
这是商店的桌子:
+----+--------+-------+
| id | family | money |
+----+--------+-------+
| 1 | 1 | card |
| 2 | 1 |Cheque |
| 3 | 2 |coins |
| 4 | 2 |ticket |
+----+--------+-------+
我正在使用
IN (SELECT s2.family FROM shop s2 WHERE (s2.money like "%k%"));
因为我想将结果显示为具有相同家族的一组行,所以我从另一个问题中得到了这个查询
【问题讨论】:
-
将数字作为字符串进行比较没有意义..
-
那还有哪些其他结果呢?向我们展示源数据样本和预期结果。老实说,您所声称的似乎不太可能。
-
这只是一个例子,钱实际上是一个文本,我只是这样命名的
-
调试是程序员工作的一部分。您是否尝试仅运行子查询并查看它返回的内容???
SELECT s2.family FROM shop s2 WHERE (s2.money like "%k%")