在某些情况下,我在使用类似mysql的关键字时遇到问题。我的要求是这样的。
首先,当我搜索'ABC'
时,结果应该找到ABC
和ABCdef
,而不是xyzABCdef
或xyzABC
。开始使用ABC%
似乎很简单。但在条件中,当我搜索'heart%'
时,它不会返回有'liver heart'
的行,因为它只返回字符串开头有heart
的行。然后我尝试使用% heart%
。这返回的行有'liver heart'
而不是字符串开头有heart的行。我有点困在这里了…所以伙计们帮我。
编辑
在你们的帮助下,我找到了下面的解决方案,但仍然给了我一些问题。
SELECT q.question_id, q.question, q.date,p.fname,p.lname,p.phys_id,
p.pic_path
FROM questions q JOIN physiciansprofile p ON p.phys_id=q.phys_id
WHERE q.question LIKE 'heart%' OR question LIKE '% heart%'
AND q.question LIKE 'liver%' OR q.question LIKE '% liver%'
ORDER BY q.date DESC LIMIT 0,10;
但是这个查询也返回
heart failure
和symptoms liver
,有没有解决方法。我需要得到包含heart
和liver
的结果,并且还必须满足前面所述的条件。有什么可以解决的吗 最佳答案
“%heart%”不起作用,因为您需要任何东西,外加空间,外加心脏,外加任何东西。
尝试以下方法:
like 'heart%' OR like '% heart%'