0

データベース テーブル:

id| p1 | p2 | ノート
1 | 1 | | | 猫、ネズミ、犬
2 | 1 | | | 猫、馬、犬

ここで、"notes" に $exclusions 配列で定義された文字列が含まれていない行を選択するクエリを実行する必要があります。LIKE '%mouse%' 演算子を試しましたが、エラーが発生しました。

$exclusions = 配列 ("マウス");
if($row['p1'] == 1 && $row['p2'] == "a" && $row['notes'] '%mouse%' とは異なります) {...}

ありがとうございました。

4

2 に答える 2

1

PHPコードとSQ​​Lを組み合わせてロジックを実行しているようです。PHPでそれを行うには、次のことができます

!strstr($row['notes'], 'mouse')

それは、「$row['notes'] に "mouse" が出現しない場合」ということです。

!出現がない場合はtrueを返すようにします。

于 2012-05-13T17:12:28.053 に答える
0
if($row['p1'] == 1 && $row['p2'] == "a" && $row['notes'] not like '%mouse%') {...}

これは MySQL 構文ではありません。PHPのようで、PHPでは使えませんLIKE。のような文字列比較演算子を試してくださいstrstrhttp://php.net/manual/en/function.strstr.php

Mysql スタイル

マウスなしですべての行を取得するクエリは次のようになります。

 SELECT * FROM `tablename` 
 WHERE `notes` NOT LIKE '%mouse%';

または、php 配列から除外を取得するには:

 $condition = "WHERE ";
 $first = true;
 foreach($exclusions as $ex) {
      if(!$first) $condition .= " AND "; // or use OR
      $condition .= "`notes` NOT LIKE \"%$ex%\"";
      $first = false;
 }

 $complete_query = "SELECT * FROM `tablename` $condition;";
于 2012-05-13T17:12:12.787 に答える