0

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

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

4

3 回答 3

2

似乎您的情况与LIKE的做法相反。看起来您已经使用了 LIKE,并且不应该将它用于任何精确匹配。查询可能看起来像

SELECT myField from MyTable where myValue = '111'
SELECT myField from MyTable where myValue = '111A'

达到相反的效果

你可以使用喜欢

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 这样的字符串

于 2013-06-13T07:21:51.090 回答
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);
?>
于 2013-06-13T07:29:03.740 回答
0

而不是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$`;
于 2013-06-13T07:33:24.247 回答