Mysql - 检查字符串A是否包含字符串B或子字符串B.

时间:2017-07-30 14:17:23

标签: php mysql sql mysqli

还有其他方法可以在LIKEREGEX执行此操作,我正在尝试检查字符串A是否包含字符串B或字符串的一小部分B如下例所示 string A = "United State of America" string B = "America"

应检查字符串B是否存在于字符串A

目前我使用了REGEXP和LIKE,但有时它会给我错误的输出,请检查下面的mycodes并给出任何建议。

//Using REGEXP
$first_five = substr($data[0], -7, 7);
$query = mysql_query("SELECT * FROM 'football' WHERE 'TEAMS' REGEXP '$first_five'");
//Using LIKE
$query = mysql_query("SELECT * FROM 'football' WHERE 'TEAMS' LIKE '%$first_five%'");`

知道哪个查询可以像上面那样执行相同的工作查询??????

2 个答案:

答案 0 :(得分:2)

mysql> SELECT INSTR('foobarbar', 'bar');
+---------------------------+
| INSTR('foobarbar', 'bar') |
+---------------------------+
|                         4 |
+---------------------------+
1 row in set (0.01 sec)

mysql> SELECT INSTR('xbar', 'foobar');
+-------------------------+
| INSTR('xbar', 'foobar') |
+-------------------------+
|                       0 |
+-------------------------+
1 row in set (0.00 sec)

答案 1 :(得分:0)

首先:关于弃用警告的注意事项:

  

mysql_query 警告此扩展程序在PHP 5.5.0中已弃用,并已在PHP 7.0.0中删除。相反,应该使用MySQLi或PDO_MySQL扩展。

排在第二位: 你应该escape参数(小心,也不推荐)

$sql = "SELECT * FROM football WHERE TEAMS LIKE '%" . 
        mysql_real_escape_string($first_five) . 
        "%'";
$query = mysql_query($sql);