【发布时间】: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