SQLのIN演算子について悩んでいます。
SQLのIN演算子について悩んでいます。
--------------------------------------------------------------------
<form method="get" action="index.php">
<input type="checkbox" name="check_addr[]" value="東京都"/>東京都<br />
<input type="checkbox" name="check_addr[]" value="千葉県"/>千葉県<br />
<input type="checkbox" name="check_addr[]" value="神奈川"/>神奈川<br />
<input type="submit" value="選択する" />
</form>
---------------------------------------------------------------------
のフォームから下記のPHPで
--------------------------------------------------------------------
$sql = "SELECT * FROM testvote WHERE mark = '0'";
if(isset($_GET["check_addr"])){
$array = implode(",", $_GET["check_addr"]);
$sql = "SELECT * FROM testvote WHERE addr IN(" .$array. ")";
}
-----------------------------------------------------------------------
チェックを入れた都道府県だけをMYSQLから取り出して表示させたいのですが、
どうにもうまく動きません。
色々と試しているのですが、IN演算子の中が数字などの場合はうまく動いています。
日本語でIN演算子を使用する場合はどうしたらいいのでしょうか?
ちなみに addrの中には都道府県(埼玉県・東京都・・・)のデータが入っています。
お礼
ありがとうございます。 regexpを使って出来ました。 SELECT address FROM table WHERE left(address,3) in('鹿児島','沖縄県') とleftで文字数を指定して検索するしかないのかなと思いましたが、助かりました。