我有一个像下面的表格,表格名称是js_skills_achievements
id skill1 skill2 skill3 skill4
1 java php html android
2 php java jquery html
3 sql php html jquery
当管理员搜索键为“ nersupalli中的Java开发人员”时
我的查询如下
SELECT *
FROM `js_skills_achievements`
WHERE `skill1` LIKE '%java developer in nersupalli%'
OR `skill2` LIKE '%java developer in nersupalli%'
OR `skill3` LIKE '%java developer in nersupalli%'
OR `skill4` LIKE '%java developer in nersupalli%'
ORDER BY id DESC
LIMIT 10
它对我不起作用.我的要求是我需要显示所有java记录.在Java中共有2条记录.即id1,id2.但是我越来越空行.
下面的方法只能工作
SELECT *
FROM `js_skills_achievements`
WHERE `skill1` LIKE '%java%'
OR `skill2` LIKE '%java%'
OR `skill3` LIKE '%java%'
OR `skill4` LIKE '%java%'
ORDER BY id DESC
LIMIT 10
我需要基于字符串指定的关键字搜索.请问有人可以帮忙吗?非常感谢.谢谢
解决方法:
在您的档案中添加全文
ALTER TABLE `js_skills_achievements` ADD FULLTEXT(`skill1`);
ALTER TABLE `js_skills_achievements` ADD FULLTEXT(`skill2`);
ALTER TABLE `js_skills_achievements` ADD FULLTEXT(`skill3`);
ALTER TABLE `js_skills_achievements` ADD FULLTEXT(`skill4`);
然后运行此查询
SELECT * FROM js_skills_achievements
WHERE MATCH(skill1,skill2,skill3,skill4) AGAINST ('java developer in nersupalli');
标签:sql,mysql,php
来源: https://codeday.me/bug/20191110/2014908.html