还有其他方法可以在LIKE
和REGEX
执行此操作,我正在尝试检查字符串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%'");`
知道哪个查询可以像上面那样执行相同的工作查询??????
答案 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);