从mysql中的字段中排除某些项目

时间:2012-06-28 17:44:39

标签: php dynamic selection field

假设您想要获取表的所有列,但不包括名称中包含_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)

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。我可以使用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;

这可以通过在information schema tables内使用a so called subquery(也许就是你所寻找的)来实现。

相关:

相关问题