mysql 多字段的 模糊 查询

来源:百度知道 编辑:UC知道 时间:2024/06/21 06:15:55
我的表中的A字段中有一些数据类似:比如:
a“你微笑,好灿烂”
b "我喜欢你的微笑"
c "我喜欢你甜甜的微笑"
d "你喜欢我甜甜的微笑"
e 你快乐,我喜欢。
等等。。呵呵。现在要实现以下两个功能:
第一:搜索 关键字 :“我”“微笑” 出现 bcd 三条数据 (呵呵,实现多同一个字段的多个关键字的搜所,便于查找);
第二:搜索 关键字: “喜欢” “我” 出现 bcde 四条数据 (呵呵就是关键词不分顺序的搜索);

谢谢各位大拿,呵呵,想了半天都不知道,mysql 的代码怎么写!
呵呵,谢谢各位的答案,不好意思,是我自己没有表达清楚,我希望是用 html 中的文本框 传值传到mysql里,然后mysql根据文本框中的关键字进行查询!比如讲,我要 在html的文本框里
输入
我(空格)微笑 出现 bcd 三条数据
输入
喜欢(空格)我 出现bcde 四条数据

呵呵,谢谢大家了,我提高悬赏了。。真不好意思。我没表达清楚!

第一、
SELECT * FROM 表名字 WHERE a LIKE '%我%' AND a LIKE '%微笑%'

第二、
SELECT * FROM 表名字 WHERE a LIKE '%喜欢%' AND a LIKE '%我%'

补充:
是用PHP吗,可以做的,我下面只写关键部分的例子程序代码,希望你可以参考:

<?php
$key='我 微笑';
$arr=preg_split('/\s+/',trim($key));
for ($i=0;$i<count($arr);$i++) $arr[$i]='a LIKE "%'.$arr[$i].'%"';
$cond=join(' AND ', $arr);
$sql="SELECT * FROM 表名字 WHERE $cond";
echo $sql;
?>

以上程序运行测试通过,确保成功运行,请你不要复制错误。

1.
SELECT * FROM 表名 WHERE 列名(A) LIKE "%我%" and 列名(A) "%微笑%";

2.
SELECT * FROM 表名 WHERE 列名(A) LIKE "%喜欢%" and 列名(A) "%我%";

select a from smile where( a like '我%' ) or (a like '%微笑');
select a from smile where(a like '%喜欢%') or (a like '%我%');