从mysql

时间:2015-05-29 05:36:36

标签: sql phpmyadmin

可以直接在phpmyadmin中以sql格式直接从10个表中进行选择吗? 在我的数据库中,我有10个表:table1table2,... table10。我在其中有相同的列column1。该列中的记录始终与123...一样,并且始终为12个符号长度。 我想要做的是从那些表中选择不以123开头的记录,它们的长度是<12个符号。

这可能吗?

2 个答案:

答案 0 :(得分:3)

以下查询是您要查找的内容

IdentityFile ~/.ssh/mykey.pub

这将返回如下结果:

SELECT * from
(SELECT column1, 'table1' table_name from table1
UNION ALL
SELECT column1, 'table2' table_name from table2
UNION ALL
... --repeat for all 10 tables
SELECT column1, 'table10' table_name from table10) 
where column1 not like '123%' and length(column1) < 12;

这将为您提供每个表中所有记录,其中column1不符合长度和格式的条件。

修改

非常感谢jarlh for this comment.使用column1 table_name abc table2 1245yy table5 代替UNION ALL是安全的(并且具有性能提升),因为如果column1恰好没有唯一索引,那么重复的值来自一张桌子将被丢弃。有关使用UNION ALL,check this link.

的表现奖金的额外阅读

答案 1 :(得分:1)

根据您的Q和我对此问题的理解

select table1.column1, table2.column1, ... table10.column1 from 
table1, table2, ... table10 where 
table1.column1 = table2.column1 and
table2.column1 = table3.column1 and .....
table9.column1 = table10.column1 and
table1.column1 not like '123%'
and table2.column1 not like '123%'.....
and len(table1.column1) < 12, len(table2.column1) < 12....