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

代わりにREGEXPLIKEを使用できます

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 に答える