mysql テーブルに varchar フィールドがあり、php で文字列を検索したいのですが、これは現在英数字であり、数字のみの結果が表示されます。
たとえば、111を検索すると、 111( 111A, 111B, 111C) に一致する結果が表示されます。111Aを検索すると、111Aの結果が表示されるはずです。これを達成する方法。
mysql テーブルに varchar フィールドがあり、php で文字列を検索したいのですが、これは現在英数字であり、数字のみの結果が表示されます。
たとえば、111を検索すると、 111( 111A, 111B, 111C) に一致する結果が表示されます。111Aを検索すると、111Aの結果が表示されるはずです。これを達成する方法。
あなたのケースは、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 のような文字列用です
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);
?>
代わりに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$`;