我有一张 table :
id name position status
1 A 1,2 1
2 B 1 1
3 C 1
4 D 2 1
其中:position
列是一个文本字段;
我的要求在这里:
SELECT `id`
FROM `table`
WHERE `status`=1
AND `position` > ''
AND `position` = FIND_IN_SET( 1, `position` )
OR `position` = FIND_IN_SET( 2, `position` )
此请求将返回:1,2,3,4。这是错误的,因为我需要:1,2,4 ->
条件:(位置
> '')。
问题出在哪里以及如何更改我的请求?
谢谢。
最佳答案
在检查字段列表中的数字时,不需要检查位置是否为空。
您不需要检查 position = FIND_IN_SET....
。它将返回 1 所在位置的值。
你需要这样做:
SELECT `id`
FROM `table`
WHERE `status`=1
AND FIND_IN_SET( 1, `position` )
OR FIND_IN_SET( 2, `position` )
关于php - mysql | mysql |来自空列和 FIND_IN_SET 的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22480418/