我有以下的子查詢...遍歷一個MySQL子查詢
SELECT column_name FROM information_schema.columns
WHERE table_schema = 'table' AND table_name = 'some_table_name'
AND column_name LIKE 'list_type_%'
...我用它來選擇與LIST_TYPE開頭的所有列名。該值可以是白色或黑色(白名單,黑名單),但在某些情況下應該默認爲黑色(但不是所有情況下 - 因爲我希望默認值爲空 - 因此將DEFAULT值設置爲黑色不是選項) 。
在這樣一個「特定的情況下,」我想遍歷子查詢的結果,因爲如果我這樣做(僞代碼)
foreach (result as column_name) {
if (column_name == x) {
values .= ", white"
}
else {
values .= ", black"
}
}
我會再使用的列名和一個連接字符串,其值插入一行。有沒有辦法在SQL(Mysql)中做這樣的事情?
或者,我可以簡單地調用PHP PDO查詢方法兩次,並在兩者之間進行一些字符串轉換,但我想這會變慢。
這聽起來像是一個真正可怕的想法。你試圖解決的更廣泛的問題是什麼? – eggyal 2013-05-05 17:53:45
我希望能夠動態添加新的列名(以「list_type_」開頭),而不必隨處修改PHP代碼,這就是爲什麼我要從information_schema中選擇列名稱的原因 – user2180613 2013-05-05 17:56:10
您需要將所有這些列表類型存儲在一個**單獨的表**,其中一列是列表類型,另一列是值 – 2013-05-05 17:57:18