今天做项目的时候,遇到一个数据库正则查找数据和跨表查找的需求,故查找了一下这两个知识点
1 数据库使用正则
我的需求是,在一张表中,查找 code 中带有字母的数据,这里使用到了正则方法,具体就是
select * from table_name where code REGEXP '[a-zA-Z]'
REGEXP 后面可以接任意正则表达式
2 跨表查询
下面我的需求就涉及到,上面那个 code 对应的数据在令外一张表中,有相同 id 的数据
这里可以拆开来想
1 在另外一张表中查找 id = 某值的数据,即:
select * from other_table_name where id = *
所以我们需要替代那个星星,这个星星的值在第一个条目中已经查到了,所以连起来就是
select * from other_table_name where id IN (select * from table_name where code REGEXP '[a-zA-Z]')
注意上面要把 ‘=’ 换成 in