搜索字母数字字符串

时间:2013-06-13 07:19:25

标签: php mysql query-string alphanumeric

我在mysql表中有一个varchar字段,我想搜索php中的字符串,这是字母数字 现在它只显示数字结果。

例如,如果我搜索 111 ,则应显示与 111(111A,111B,111C)匹配的结果。如果我搜索 111A ,则应显示 111A 的结果。 如何实现这一点。

3 个答案:

答案 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$`;