我在mysql表中有一个varchar字段,我想在php中搜索字符串,这是字母数字 现在它只显示数字结果。搜索字母数字字符串
例如,如果我搜索那么它应该显示的结果匹配111(111A,111B,111C)。如果我搜索111A那么它应该显示111A的结果。 如何做到这一点。
我在mysql表中有一个varchar字段,我想在php中搜索字符串,这是字母数字 现在它只显示数字结果。搜索字母数字字符串
例如,如果我搜索那么它应该显示的结果匹配111(111A,111B,111C)。如果我搜索111A那么它应该显示111A的结果。 如何做到这一点。
似乎你的情况是相反的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在PHP
列这将工作! – CaffeineShots
谢谢。 (从MyTable中选择myField,其中myValue ='111')工作。 – raul
搜索模式: 从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);
?>
而不是LIKE
可以使用REGEXP
对于开始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$`;
到底哪里像 '%111%' – CaffeineShots