我在数据库中有数据
| id|title | exp_level | skill | company |
|---|-------------|------------|------------|-----------|
| 1 |Web Developer| Entry |Java, PHP |Virtual Inc|
| 2 |App Developer|Intermediate|Android, iOS|Virtual Inc|
| 3 |App Developer|Intermediate|Ionic, React|Virtual Inc|
结果可见SQL Fiddle Here , OK, 现在的要求是,如果用户搜索developer 那么所有带有title
developer 的工作应该通过查询返回,如果用户搜索< em>Entry 然后所有具有level
Entry 的作业应该通过查询等返回,我有这个查询
SELECT * FROM AVAIL_JOBS WHERE title LIKE '%App Development, Social Marketing%' OR exp_level LIKE '%Entry%' OR skill LIKE '%Java%' OR company LIKE '%App Inc%'
上面的查询运行良好,结果可以在SQL Fiddle Here看到, 但下面的查询
SELECT * FROM AVAIL_JOBS WHERE title LIKE '%App Development, DB Admin%' OR exp_level LIKE '%Entry, Advanced%' OR skill LIKE '%Java, Spring, Angular%' OR company LIKE '%Inc, Foo, Bar, Lorem%'
此查询返回空值,没有任何数据,即使表中存在“App”、“Entry”、“Java”但查询结果中未找到的可以在SQL Fiddle Here中看到.
如何使此查询使用上面显示的值?将那些逗号分隔的字符串值与表数据进行比较的任何勾号?
最佳答案
将 WHERE title LIKE '%App Development, DB Admin%'
更改为 WHERE title LIKE '%App Development%' OR title LIKE '%DB Admin%'
。在 LIKE
条件中放置逗号不会分隔字符串。我希望我做对了!
关于php - 无法以正确的方式执行 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222793/