[英]Single quotes in MySQL query not work for concat()
SELECT `osid`,`os_name`,
(SELECT count(*)
FROM `game_game`
WHERE concat(',',`os`,',') LIKE ('%,`os`.`osid`,%') ) as game_count
FROM `game_os` AS os ORDER BY `osid`
兩個SQL表
game_os
osid (PK)
os_name
game_game
game_id (PK)
game_name
os (save data format : 1,2,3) (1,2,3 = osid)
這個SQL查詢,game_count從不= 0
我覺得可能'%, os
。 osid
,%'因為os
。 osid
在'XX' < -
我該如何解決這個問題?
我需要在一個操作系統中獲得多少游戲
你需要concat()
的like
:
SELECT osid, os_name,
(SELECT count(*)
FROM game_game
WHERE concat(',', os, ',') LIKE CONCAT('%,', os.osid, ',%')
) as game_count
FROM game_os AS os
ORDER BY osid;
但是,您也可以使用find_in_set()
來編寫它,因為您使用逗號分隔符:
SELECT osid, os_name,
(SELECT count(*)
FROM game_game
WHERE find_in_set(os.osid, os) > 0
) as game_count
FROM game_os AS os
ORDER BY osid;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.