mysql数据库 怎么在多个表中 查找一个关键词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库 怎么在多个表中 查找一个关键词相关的知识,希望对你有一定的参考价值。

比如我的数据库中有5张表 表名分别是aa bb cc dd ee
我输入一个关键字 能查出所有表中的所有字段里包含这个关键字的信息
返回所有包含此关键词的记录

select * from table1 where concat(`字段`,`字段`,`字段` ) like '%关键字%' union
select * from table2 where concat(`字段`,`字段`,`字段` ) like '%关键字%' union
select * from table3 where concat(`字段`,`字段`,`字段` ) like '%关键字%' union
select * from table4 where concat(`字段`,`字段`,`字段` ) like '%关键字%' union
select * from table5 where concat(`字段`,`字段`,`字段` ) like '%关键字%'
前提是查询出来的字段个数要一样,类型要对应好,至于如何得到正确且符合你需要的sql就要在程序类中处理了
参考技术A 如果五张表都有关联,就集成到一个sql语句
如果没有的话,就只能分别读取
最后将他陈入一个数组,返回结果追问

这样得写很多sql语句啊 而且我现在不止5个表

追答

那你这样,入库之前,把有的数据用某一个表记录,届时用这个表来处理所有的数据

参考技术B 按照你的描述,对方问的问题肯定是不固定的吧?
假设对方问的问题是一个string类型的数据,作为string1.
所以可以把所有的关键词放在一个map里面,key为关键词,value为答案,再遍历map的key,转换为string,作为string2.
如果string1包含string2,那么就可以取出string2键对应的值,返回给对方了。
这是我java的思维,你们php好像只有数组,不过应该有类似map的函数的,array_map()
函数好像可以用。
参考技术C 你先把这几个表关联起来,然后用视图的方法调用就OK 参考技术D 格式如下:
select selection_list // 要查询的内容,选择哪些列
from table_list // 从什么表中查询,从何处选择行
where primary_constraint // 查询时需要满足的条件,行必须满足的条件
group by grouping_columns // 如何对结果进行分组
order by sorting_columns // 如何对结果进行排序
having secondary_constraint // 查询时满足的第二条件
limit count // 限定输出的查询结果

设置查询的内容。
1)如果要查询一个表中的所有列,可以将其设置为“*”。
比如,查询tb_chengji数据表中的所有列。代码如下:
select * from tb_chengji;
// 查询数据表中的所有数据
2)如果只查询一个表中的某一列或多列,可以直接输入列名,并以“,”分隔。
代码如下:
select xuesheng,yuwen from tb_chengji;
// 查询数据表中xuesheng和yuwen列的数据

如何在mysql中查询所有表是不是包含某个字段

在select语句的where子句中使用like关键字,例如
select
*
from
表1
where
列1
like
'%计算机%'
表示查找列1中包含“计算机”字样的结果。
其中%代表任意多个字符,下划线代表一个字符。
参考技术A 如何查询mysql数据库里某个字段在哪张表中
use
information_schema;
select
*
from
columns
where
column_name='字段名'
;本回答被提问者采纳

以上是关于mysql数据库 怎么在多个表中 查找一个关键词的主要内容,如果未能解决你的问题,请参考以下文章

mysql一个表中多个字段对应另一个表的id如何查询?

如何在mysql中查询所有表是不是包含某个字段

MYSQL过滤表中某几个字段重复的数据

MYSQL查一个字段中 多个值

哈希表中的查找

使用 MySQL 查询查找和替换整个表中的文本