假设您想要获取表的所有列,但排除名称中包含例如 _images 的列,而无需执行
mysql_query("SHOW COLUMNS FROM " . $table. " WHERE Field NOT IN ('project_images_1' .etc)")
这可能吗?
字段示例:
header
bodytext
project_images_1 (exclude)
project_images_2 (exclude)
是的,这是可能的。我可以用LIKE
操作员来做:
SHOW COLUMNS FROM $table WHERE NOT Field LIKE '%_images%';
或者,如果您需要更多控制,这可能会有所帮助:
$query = <<<SQL
SHOW COLUMNS FROM $table WHERE Field NOT IN (
SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = $table
AND column_name LIKE 'project_images_%'
);
SQL;
这通过在所谓的 subquery中使用信息模式表(也许这就是您要查找的内容)来工作。
有关的: