搜索后的排序问题?

linjianwu 2004-12-28 09:45:38
如:在表里搜索"abcd ef"这个字符。
首先搜出“abcd ed”模糊匹配的字段。同时再找出最后一个单词也就是跟ef匹配的字段。
偶的语句是这么写的。
select * from table where name like '%abcd ed%' or name like '%ed%'
要求:跟name like '%abcd ed%'匹配的字段要显示在最前面。name like '%ed%'匹配的要显示在其后
以上的搜索语句不能实现这个要求。请问有什么方法可以实现的。
或用分开写。但老板不让分开写。再说了分开写显示也不好显示。分页成了问题。特向各位达人请教?????
...全文
128 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
alianasia 2004-12-28
  • 打赏
  • 举报
回复
慢是没办法的,,,,有得有失吧.

不过数据量不是特别大的话应该也不会慢很多.
linjianwu 2004-12-28
  • 打赏
  • 举报
回复
真是太谢谢你们了。不过这样做。速度好像慢了很多。
jxflll 2004-12-28
  • 打赏
  • 举报
回复
MySQL的版本太低了。
uGain 2004-12-28
  • 打赏
  • 举报
回复
MySQL版本多少?
union要求4.0+
linjianwu 2004-12-28
  • 打赏
  • 举报
回复
打印显示出来的句子
select * from opus where opus_name like '%the elder%' or artist_name like '%the elder%' union select * from opus where opus_name like '%elder%' or artist_name like '%elder%'

偶的语句是这么写的:
$query="select * from opus where opus_name like '%$key%' or artist_name like '%$key%' union select * from opus where opus_name like '%$LastKey%' or artist_name like '%$LastKey%'";

出现的错误提示:
You have an error in your SQL syntax near 'union select * from opus where opus_name
like '%elder%' or artist_name like '%el' at line 1

这是怎么回事?

uGain 2004-12-28
  • 打赏
  • 举报
回复
select * from table where name like '%abcde ed%' union select * from table where name like '%ed%';
uGain 2004-12-28
  • 打赏
  • 举报
回复
是的,使用union就相当于查询两次数据库,把结果合并起来.所以会慢些.

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧