如何从Select Distinct中排除表

时间:2012-06-06 07:10:33

标签: php mysql arrays select distinct

我疯了......

我想生成一个需要通过循环的表数组,但我不希望包含表“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%'

在第二种情况下,我尝试使用LIKE函数仅提取我需要的表,但它仍然会拉取ClientData。我甚至补充说:

`COLUMN_NAME` NOT LIKE 'ClientData'

'Client%'的每个变体......

我已经度过了。非常感谢任何人的帮助。


vearutop,

你为我打破了大坝,谢谢!我出于某种原因陷入了Column_name,应该一直在思考Table_name。尴尬...

我抄袭了你的Table_name!='ClientData'并用Table_name替换了Column_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个+小时的连续编码,以满足截止日期(需要退出志愿服务!)这让我离睡眠时间大约2小时。

1 个答案:

答案 0 :(得分:1)

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('QuoteID') AND
TABLE_NAME != 'ClientData'
AND TABLE_SCHEMA='$db';