mysql中现有一个house表id name addr dev
1 万达星城 红谷滩 万达公司
2 中山名座 东湖 恒发公司现要做一个搜索提示功能,
如用户 输入 中,需提示出 中山名座 (只查一个字段的,已实现)如输入 万达,就要弹出 万达星成 万达公司 这二个(有多个字段的,不知怎么下手)也就是要每个字段都要检索,用 or 查询不太方便, 这怎么实现呀.thanks
1 万达星城 红谷滩 万达公司
2 中山名座 东湖 恒发公司现要做一个搜索提示功能,
如用户 输入 中,需提示出 中山名座 (只查一个字段的,已实现)如输入 万达,就要弹出 万达星成 万达公司 这二个(有多个字段的,不知怎么下手)也就是要每个字段都要检索,用 or 查询不太方便, 这怎么实现呀.thanks
$sql="select * form house where concat(name,addr,dev) like "万达%";
可2楼的sql还是运行不了。
上面的sql好像没什么用,
将参数连接成字符串返回。如果有任何一个参数为 NULL,返回值也为 NULL。可以有超过 2 个的参数。数字参数将被转换为相等价的字符串形式:
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
FROM house
WHERE concat( '|', name, '|', addr, '|', dev, '|' ) LIKE '%|万达%|%'
本地测试了一下,可以的
建议你用哈子sphinx吧。。挺好的一个搜索
再用httpcws分词,再来查询