在mysql中使用like语句

时间:2017-01-19 13:40:16

标签: mysql

我正在使用名为exp1的表,在此表中有一个名为filename的列,其中包含exp_ara1.txt,exp_gma1.txt,exp_sly1.txt,exp_rcy1.txt,exp_thy1.txt等数据

通过使用MySQL查询,我想只选择那些文件名为%ara%或%gma%的行。 我正在使用以下命令:

Select * from exp1 where filename LIKE ('%ara%' OR '%gm%');

但这是结果  您的SQL查询已成功执行。  MySQL返回一个空结果集(即零行)。

4 个答案:

答案 0 :(得分:4)

试试这个:

Select * from exp1 where filename LIKE ('%ara%') OR filename LIKE ('%gm%');

答案 1 :(得分:1)

使用REGEXP我们可以使用替换来编写单个术语以匹配:

SELECT *
FROM exp1
WHERE filename REGEXP '(.*ara.*)|(.*gm.*)'

答案 2 :(得分:1)

我认为这是最好的过程之一,好像你有更多的单词来放入像::

$sql = array('0'); // Stop errors when $words is empty

foreach($words as $word){
    $sql[] = 'filename LIKE %'.$word.'%'
}

$sql = 'SELECT * FROM exp1 WHERE '.implode(" OR ", $sql);

答案 3 :(得分:0)

在MySQL中,您没有像SQL Server或Oracle那样使用CONTAINS函数的选项,这就像您尝试的那样。

SELECT * 
FROM exp1
WHERE (filename LIKE ('%ara%') OR filename LIKE ('%gm%'));