【问题标题】:How to Exclude a Table from Select Distinct如何从 Select Distinct 中排除表
【发布时间】:2012-06-10 04:48:55
【问题描述】:

我要疯了……

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

使用 just TABLE_NAME != 'ClientData' 不是一个足够严格的过滤器,因为我还需要过滤掉一些其他表,但这是完美的。再次感谢。我已经连续 50 多个小时完成编码以赶上最后期限(需要退出志愿服务!),这让我离睡眠更近了 2 个小时。

【问题讨论】:

    标签: php mysql arrays select distinct


    【解决方案1】:
    SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('QuoteID') AND
    TABLE_NAME != 'ClientData'
    AND TABLE_SCHEMA='$db';
    

    【讨论】:

    • 非常感谢您为我指明了正确的方向……我的头都转了。
    猜你喜欢
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多