我有一個特殊的數據環境,我需要以某種方式返回數據來填充表。MySQL IN()子句多個返回
這是我當前的查詢:
SELECT
bs_id,
IF(bs_board = 0, 'All Boards', (SELECT b_name FROM certboards WHERE b_id IN (REPLACE(bs_board, ';', ',')))) AS board
FROM boardsubs
正如你可以看到我有一個if
語句然後再選擇特殊。
我之所以這是場bs_board
是包含像這樣多行ID的varchar
場:
1;2;6;17
因此,查詢像它工作正常,但它只返回第一個匹配b_name
。我需要它來返回所有比賽。例如在這裏是1;2
它應該在同一列中返回兩個板Board 1
和Board 2
。稍後我可以處理在每個結果之間添加<br>
。
但是我要處理的問題是,它必須返回單個列中的名稱或全部名稱,因爲該字段可以包含與所選原始編輯器一樣多的字段。
'bs_board = 0'你的意思是'bs_board ='0''? –
如果可以,請將表格標準化。你不應該在一個列中有多個值。 – Kermit
@njk我不能改變列的類型,它總是保持''varchar'像'1; 2; 3'這樣的值。這就是爲什麼我在這裏發佈,以找到是否有辦法解析它現在的方式。是的,我應該有多個價值觀,它完全能夠以這種方式工作,謝謝。 – jfreak53