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