0

テーブルのすべての列を取得したいが、名前に _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)
4

1 に答える 1

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;

これは、いわゆる subquery内で情報スキーマ テーブルを使用することによって機能します(おそらくそれはとにかく探しているものです) 。

関連している:

于 2012-06-28T18:06:50.987 に答える