【问题标题】:Multiple rows with same id but different row names具有相同 id 但不同行名的多行
【发布时间】:2017-03-30 03:22:17
【问题描述】:

我有两个不同列数和列名的表。

标签:

ID   nome       cognome    messaggio  testo      orario     ip
---  ---------  ---------  ---------  ---------  ---------  ---------
1    a          a          a          a          a          127  
2    b          b          b          b          b          111
3    a          a          tt         qqq        h          127     

标签 b:

id   nome       cognome    email
---  ---------  ---------  ---------
1    t          t          t

我想像我一样在两个表和适当的发布者所有列中都使用 %t% 吗?

打印:

ID   nome       cognome    messaggio  testo      orario     ip         email
---  ---------  ---------  ---------  ---------  ---------  ---------  ---------
1    t          t          null       null       null       null       t
3    a          a          tt         qqq        h          127        null

【问题讨论】:

  • 我猜你可以使用 UNION ALL
  • 你能补充一些细节吗?如果您可以编辑添加预期结果的问题(与表格示例一致),这有助于获得更好的答案。
  • 也许你应该考虑使用专门的文本表/索引,比如 '%a%' 对性能非常不利
  • 我用打印编辑结果

标签: php mysql rows


【解决方案1】:

你正在寻找这样的东西:

    SELECT ID as id, nome, cognome, messaggio, testo, orario, ip, NULL AS email 
      FROM `tabA` 
     WHERE nome LIKE '%t%' OR cognome LIKE '%t%'  OR messaggio LIKE '%t%'  OR testo LIKE '%t%'

 UNION ALL

    SELECT id as id, nome, cognome, NULL as messaggio, NULL AS testo, NULL as orario, NULL AS ip, email 
      FROM `tabB` 
     WHERE nome LIKE '%t%' OR cognome LIKE '%t%'  OR email LIKE '%t%'

sqlFiddle demo

UNION 用于将多个SELECT 语句的结果组合成一个结果集。 UNION 删除重复行,UNION ALL 返回所有行。每个SELECT语句的列号必须相等,所以我指定了每个SELECT中的所有字段,为不存在的列设置Null

请注意以上使用LIKE会严重影响性能。


  • 阅读更多关于UNION

【讨论】:

  • 正如您在我的回答中看到的,两个 select 语句必须返回相同的列号。返回的字段名称是 first select 的名称。您可以只选择您想要的字段,但如果第一次选择返回(即)5 列,则第二次选择必须返回 5 列。
  • 您现在是从这个项目开始,还是您的数据库结构已经存在?
  • 我现在开始 :) 但是好吧 tnks 人你很珍贵,对不起我的英语不好
  • 看看thisthis
  • ma sei italiano? aahahaha ok bastava dirlo prima grazie mille :D comunque pensavo ci fosse un metodo più sbrigativo rispettoall' uion per fare il tutto visto che ho delle tabelle con tante colne mi viene difficoltoso e lungo controllare le differentenze delle colne ...va bè lavoro noioso ma che si deve fare grazie ancora
猜你喜欢
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多