我可以和CONCAT
一样使用吗?我找不到任何其他说法。我正在尝试以下内容并给出错误:
SELECT *, (select count(*) from acts where bookingType like '%CONCAT(bookingTypes_id, ',')%') as how_many FROM bookingTypes order by bookingType
注意:我使用逗号CONCAT
,因为bookingType
字段基本上是以逗号分隔的数字列表,例如40,14,45 - 我不能只搜索例如4,因为它会显示何时不应该 - 是否有更好的方法在该字段内进行搜索?
答案 0 :(得分:3)
通常最好不要在字段中存储逗号分隔值,但可以这样使用CONCAT:
SELECT
*,
(SELECT COUNT(*)
FROM acts
WHERE CONCAT(',', bookingType, ',')
LIKE CONCAT('%,', bookingTypes_id, ',%')) AS how_many
FROM bookingTypes
ORDER BY bookingType
或者您可以使用FIND_IN_SET:
SELECT
*,
(SELECT COUNT(*)
FROM acts
WHERE FIND_IN_SET(bookingTypes_id, bookingType)>0) AS how_many
FROM bookingTypes
ORDER BY bookingType
答案 1 :(得分:2)
试试这个: -
SELECT *
FROM acts
WHERE bookingTypes LIKE CONCAT('%',
(SELECT bookingTypes FROM bookingTypes order by bookingType LIMIT 1), '%');