“大米 茶” 先把字符串String str[] = ssss.split(" ") 然后再like %str[0]% or like %str[1]%...
可以用 sql 语句来完成。 借用 sql 语句的正则表达式。1.首先,你将所有的 关键词 分离出来,比如 “大米”,“茶”(我在使用时,是放在 List 中的) 2.建立 sql 我们查询的原则是优先查找出既含有关键词“大米”又含有关键词“茶”的记录, 然后再查找出分别包含有 “大米”,“茶” 等关键词的记录 那么 /* 这一句是查找出包含所有关键词的记录的语句 */ select * from t_article where title regexp '.*(大米)+.*(茶)+.*' /* 利用 union 将两个表合起来,注意,是union 而不是 union all */ union
/* 查找出含有部分关键词的记录的语句 */ select * from t_article where title regexp '.*(大米)+.*' /*同理*/ union select * from t_article where title regexp '.*(茶)+.*'
...附: 我是 MySql 数据库,其他数据库也支持正则表达式,所以要先了解数据库正则表达式的语法。
可以用 sql 语句来完成。 借用 sql 语句的正则表达式。1.首先,你将所有的 关键词 分离出来,比如 “大米”,“茶”(我在使用时,是放在 List 中的) 2.建立 sql 我们查询的原则是优先查找出既含有关键词“大米”又含有关键词“茶”的记录, 然后再查找出分别包含有 “大米”,“茶” 等关键词的记录 那么 /* 这一句是查找出包含所有关键词的记录的语句 */ select * from t_article where title regexp '.*(大米)+.*(茶)+.*' /* 利用 union 将两个表合起来,注意,是union 而不是 union all */ union
/* 查找出含有部分关键词的记录的语句 */ select * from t_article where title regexp '.*(大米)+.*' /*同理*/ union select * from t_article where title regexp '.*(茶)+.*'
...附: 我是 MySql 数据库,其他数据库也支持正则表达式,所以要先了解数据库正则表达式的语法。
select * from t_article where title regexp '.*(大米)+.*(茶)+.*' 请问这里的title是不是字段名? 我把它改成: SELECT * FROM t_goods WHERE name regexp '.*(牛)+.*(米)+.*' 后再数据库中运行,结果报错了,错误是“regexp附近有语法错误”,请问是怎么回事呢?
这个和sql语句没关系,sql语句就类似and or like % _ 等等 所以要对你的查询条件进行处理,以供支持sql语法即可
建议用索引.如 lucene
有高手可以明示吗?跪下来谢谢你了!
先把字符串String str[] = ssss.split(" ")
然后再like %str[0]% or like %str[1]%...
借用 sql 语句的正则表达式。1.首先,你将所有的 关键词 分离出来,比如 “大米”,“茶”(我在使用时,是放在 List 中的)
2.建立 sql
我们查询的原则是优先查找出既含有关键词“大米”又含有关键词“茶”的记录,
然后再查找出分别包含有 “大米”,“茶” 等关键词的记录
那么
/* 这一句是查找出包含所有关键词的记录的语句 */
select *
from t_article
where title regexp '.*(大米)+.*(茶)+.*' /* 利用 union 将两个表合起来,注意,是union 而不是 union all */
union
/* 查找出含有部分关键词的记录的语句 */
select *
from t_article
where title regexp '.*(大米)+.*' /*同理*/
union select *
from t_article
where title regexp '.*(茶)+.*'
...附: 我是 MySql 数据库,其他数据库也支持正则表达式,所以要先了解数据库正则表达式的语法。
借用 sql 语句的正则表达式。1.首先,你将所有的 关键词 分离出来,比如 “大米”,“茶”(我在使用时,是放在 List 中的)
2.建立 sql
我们查询的原则是优先查找出既含有关键词“大米”又含有关键词“茶”的记录,
然后再查找出分别包含有 “大米”,“茶” 等关键词的记录
那么
/* 这一句是查找出包含所有关键词的记录的语句 */
select *
from t_article
where title regexp '.*(大米)+.*(茶)+.*' /* 利用 union 将两个表合起来,注意,是union 而不是 union all */
union
/* 查找出含有部分关键词的记录的语句 */
select *
from t_article
where title regexp '.*(大米)+.*' /*同理*/
union select *
from t_article
where title regexp '.*(茶)+.*'
...附: 我是 MySql 数据库,其他数据库也支持正则表达式,所以要先了解数据库正则表达式的语法。
from t_article
where title regexp '.*(大米)+.*(茶)+.*'
请问这里的title是不是字段名?
我把它改成: SELECT *
FROM t_goods
WHERE name regexp '.*(牛)+.*(米)+.*'
后再数据库中运行,结果报错了,错误是“regexp附近有语法错误”,请问是怎么回事呢?
所以要对你的查询条件进行处理,以供支持sql语法即可
呵呵