我有下表:
Client
和Companies
。一个Client
可以有多个Companies
。我目前正在使用服务器端处理在jQuery dataTable中显示Clients
的列表。一切正常,但是使用它的人问我是否还可以使用一些公司名称作为搜索条件。
现在,在正常情况下,dataTable会自己搜索字段。但是dataTable在经过数百个条目后会严重减慢速度,因此我不得不使用服务器端处理,因此我必须进行搜索并处理最终结果,dataTable仅负责显示当前批次。
我目前正在对LIKE
个表字段中的几个进行Clients
比较以进行搜索。
我在想的是,我可能会添加一个属于每个Companies
的所有Client
的串联列表,并将自定义字段添加到LIKE
比较中,甚至可能显示它是客户名称后面的一小部分。
在这种情况下,我该怎么办?我有没有这个主意?或者有更好的方法吗?
我想也许是某种子查询,但它应该只返回一个结果。
更新:数据库结构
客户
ClientTypes
表ClientStatus
表公司
Clients
表我无法复制确切的CREATE
语句,因为实际表还有更多字段和与其他表的关系。我添加了恢复的版本,但想法就在那里。我希望能够做类似的事情:
数据表单元格中的最终结果
客户端Alpha
客户端Beta
客户端Gamma
如果我搜索“ omega ”,我希望结果包含客户端Alpha和Beta。
答案 0 :(得分:1)
使用具有JOIN之类的查询:
SELECT Clients.* FROM Clients
JOIN Companies ON Companies.client_id = Clients.client_id
WHERE company_name LIKE '%omega%'
通过适当的SQL注入预防措施并选择所需的字段。