程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

用于搜索多个表的 MySQL/PHP 优化连接查询

发布于2023-02-18 21:05     阅读(1134)     评论(0)     点赞(8)     收藏(3)


我需要在 18 个单独的 SQL 表中搜索一个字符串。搜索将查找不同名称的字段和某些表上的多个字段。

虽然我可以通过类似下面的方法(前 2 个表)来实现这一点,但我觉得一旦所有 18 个表都连接起来,代码就会变得非常笨拙。

有什么办法可以改进这段代码吗?

另外,当给出结果时,我可以用 PHP 找出答案来自哪个表吗?

mysql_query("SELECT a.about,b.title,b.article,b.description

FROM about a 
JOIN articles b ON b.user=a.user

WHERE (upper(a.about)  LIKE'%".$val."%')  OR  (upper(b.title)  LIKE'%".$val."%') OR  (upper(b.article)  LIKE'%".$val."%') OR  (upper(b.descirption)  LIKE'%".$val."%')  ORDER BY $order $max");

解决方案


使用 UNION

SELECT about from some WHERE about like '%some%'
UNION 
SELECT about from some_other WHERE about like '%some%'

如果你想允许重复的结果使用UNION ALL



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/487700/910a9510cf373b22fdfb/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

8 0
收藏该文
已收藏

评论内容:(最多支持255个字符)