1

私はおかしくなりそうだ...

ループを通過する必要があるテーブルの配列を生成したいのですが、テーブル "ClientData" を含めたくありません。しかし、私が何をしても、配列に表示され続けます...

私はこれを試しました:

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('QuoteID') AND
COLUMN_NAME NOT REGEXP '\\([^\\)]*ClientData.*\\)'
    AND TABLE_SCHEMA='$db';

私はこれを試しました:

SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='$db' OR
`COLUMN_NAME` LIKE 'Training%' OR 
`COLUMN_NAME` LIKE 'Development%' OR  
`COLUMN_NAME` LIKE 'Hardware%' OR 
`COLUMN_NAME` LIKE 'MobilityL%'

この 2 番目のケースでは、LIKE 関数を使用して必要なテーブルのみを取得しようとしましたが、それでも ClientData が取得されます。私も追加しました:

`COLUMN_NAME` NOT LIKE 'ClientData'

そして、「Client%」のすべてのバリエーション...

私は過ごしました。誰でも助けていただければ幸いです。


ヴェアルトップ、

あなたは私のためにダムを破った、ありがとう! 私は何らかの理由で Column_name に巻き込まれ、ずっと Table_name を考えていたはずです。恥ずかしい...

私はあなたの Table_name != 'ClientData' をクリブし、Column_Name フィルターを Table_name に置き換えました。完璧です。これが最終的なものです:

SELECT DISTINCT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='$db' OR
TABLE_NAME LIKE 'Training%' OR 
TABLE_NAME LIKE 'Development%' OR  
TABLE_NAME LIKE 'Hardware%' OR 
TABLE_NAME LIKE 'MobilityL%'  AND
TABLE_NAME != 'ClientData'

TABLE_NAME != 'ClientData'だけを使用しても、他のテーブルを除外する必要があったため、十分に厳密なフィルターではありませんでしたが、これは完璧です。再度、感謝します。私は締め切りに間に合うように 50 時間以上のコーディングを続けています (ボランティア活動をやめる必要があります!)。

4

1 に答える 1

1
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('QuoteID') AND
TABLE_NAME != 'ClientData'
AND TABLE_SCHEMA='$db';
于 2012-06-06T07:32:04.270 に答える