私はこのようなクエリを持っています。現在、非常にシンプルでしまでMySQLのクエリ絞り込み
$stmt = $conn->prepare("SELECT * FROM database.table WHERE (`status` = 'red' OR `status` = 'orange') ORDER BY `$orderby` $ad");
$のORDERBYの側面は、アップ持っている - テーブルから列名を選択して注文することを使用結果。これまでのオプションがlastModified
とreference
のようなものだった私が、うるさく、あるallocation
という名前の、潜在的な選択肢として、このに追加フィールドを追加するために、2つの情報の部分とを1つだけ保持するフィールドを依頼されていますこれらは実際にオーダーごとに必要です。そのようなオプションは、null
または書式:16/02/2017 - Sydney
または19/05/2017 - New York
などのいずれかです。
dd/mm/yyyy
の形式の日付で注文することはできますが、質問内では- Location
のものを捨てることができますか?私はPHPでそれを行う方法を知っていますが、直接MySQLのクエリではありません。それも可能ですか?私はそれが何とかしていると推測しています...(希望)!
スペースを見つけるのに 'LOCATE()'を使い、その位置まで全てを取得するには 'LEFT()'を使います。 – Barmar
**警告**:可能な限り、**プリペアドステートメント**を使用して、クエリに任意のデータを注入したり、[SQLインジェクションのバグ](http://bobby-tables.com/)を作成しないようにしてください。これらは[mysqli](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と[PDO](http://php.net/manual/)で行うのはかなり簡単です。 en/pdo.prepared-statements.php)ここで、ユーザが提供するデータは '?'または ':name'のインジケータで指定され、後で' bind_param'や 'execute'を使ってデータを入力します。 – tadman
上記の両方のコメントは正しいですが、Barmarのアプローチが難しい場合は、ORMを取得してください。 ORMを使用しない場合、Tadmanのコメントは重要です。 –