我在mysql表中有一个varchar字段,我想搜索php中的字符串,这是字母数字 现在它只显示数字结果。
例如,如果我搜索 111 ,则应显示与 111(111A,111B,111C)匹配的结果。如果我搜索 111A ,则应显示 111A 的结果。 如何实现这一点。
答案 0 :(得分:2)
好像你的情况与 LIKE 的相反。看起来您已经使用了LIKE,并且不应该将它用于任何完全匹配。查询可能看起来像
SELECT myField from MyTable where myValue = '111'
SELECT myField from MyTable where myValue = '111A'
实现相反的
您可以使用 LIKE
SELECT myField from MyTable where myValue LIKE '111%'
这适用于像111Anything
这样的字符串SELECT myField from MyTable where myValue LIKE '%111%'
这适用于像Anything111Anything
这样的字符串SELECT myField from MyTable where myValue LIKE '%111'
这适用于像Anything111
这样的字符串答案 1 :(得分:1)
在php中搜索模式: 来自http://www.php.net/manual/en/function.preg-grep.php
<?php
$subject = array("111A", "111B", "222");
$pattern = "/^111/";
$matches = preg_grep($pattern, $subject);
print_r($matches);
?>
答案 2 :(得分:0)
您可以使用REGEXP
而不是LIKE
以111开头
SELECT myField from MyTable where myValue REGEXP `^111`;
以111结尾
SELECT myField from MyTable where myValue REGEXP `111$`;
以111开头,以111结束
SELECT myField from MyTable where myValue REGEXP `^111$`;