簡體   English   中英

MySQL查詢中的單引號不適用於concat()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM