我有以下子查询...
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 查询方法两次,并在两者之间进行一些字符串转换,但我想这会更慢。