【发布时间】:2014-11-25 10:24:47
【问题描述】:
我已经在这里问过Query Logic SQL 并没有得到回复(可能是我的数据的呈现)我真的希望有人可以看看这个并就如何完成这个提供他们的意见。非常感谢任何帮助。
我有一个看起来像这样的 sql 表数据
用户表
id | name |
_______________
1 | John |
2 | Mary |
3 | Charles |
4 | Mike |
5 | Lucy |
6 | Debbie |
配对表:
main_id | pair_id |
_____________________
1 | 2 |
1 | 3 |
2 | 4 |
2 | 5 |
3 | 6 |
3 | 1 |
当向用户呈现输出时,我的 html 表看起来像这样,在 sql 中使用 group_by groupconcat。
main_name | paired_names
John | Mary, Charles
Mary | Mike, Lucy
Charles | Debbie, John
现在,问题出在搜索过程中(通配符搜索)
假设用户将输入“Charles”...
输出需要是:
main_name | paired_names
John | Mary, Charles
Charles | Debbie, John
因为它要在对表的两列中进行通配符搜索。
现在,我所做的是我从数据库中操作结果集,但这有分页,并且被告知如果我查询所有数据然后再操作,它将影响系统性能。
我希望有人好心就如何完成这项工作提供建议。
如果需要,我可以提供更多详细信息。
期待您的来信。
【问题讨论】:
-
请向我们展示您目前的 sql 语句
-
这里是:select user_1.name, group_concat(user_2.name SEPARATOR ", ") aspaired_names from pairing_table left join users as user_1 on pairing_table.main_id = users.id left join users as user_2 on pairing_table.paid_id = users.id group_by pairing_table.main_id 但我如何添加查询以从这两个列中获取名称?因为 sql 无法识别 where 中的别名
标签: php sql codeigniter