我想在 3 列中搜索單個值并回傳該值的每次出現。我的查詢基于以下關于類似請求的答案。
SELECT *
FROM table
WHERE 'abc' IN (column1, column2, column3)
但是,我不想回傳整行,只回傳單個值。該值可能在同一行的多個列中找到。每次出現都應回傳,最終結果應為一維串列。我需要如何更改我的查詢?
uj5u.com熱心網友回復:
您希望在每一行中回傳的值與您搜索的值相同,因此這樣的陳述句將執行以下操作:
SELECT 'abc' AS column_name
FROM table
WHERE 'abc' IN (column1, column2, column3)
如果您希望'abc'在 3 列中的任何一個中每次出現都回傳一次,您應該使用 UNION ALL:
SELECT column1 AS column_name
FROM table
WHERE column1 = 'abc'
UNION ALL
SELECT column2 AS column_name
FROM table
WHERE column2 = 'abc'
UNION ALL
SELECT column3 AS column_name
FROM table
WHERE column3 = 'abc'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450596.html
標籤:mysql sql 选择 where子句 sql-in
上一篇:MySQL使用多個值更新多行
