データベースを設計するときに、たとえば次のような状況がよくあります。
記事テーブルには、1 つの見出し、2 つの推奨事項、3 つのホットスポット、4 つの写真とテキストを含む記事の種類を保存する type フィールドがあります... .11、12、13 など。
見出し、ホットスポット、および画像とテキストの両方を備えた記事があります。
タイプは 1、3、4 の形式で保存されます。 SQL を使用してすべてを検索するにはどうすればよいですか。タイプには 4 つのグラフィックおよびテキストの標準記事があります。
ここで、find_in_set がアクションを実行します。
まず、mysql マニュアルで find_in_set 関数の構文を確認してください。 FIND_IN_SET(str, strlist)
N 個のサブチェーンで構成される文字列リスト strlist 内の文字列 str の場合、戻り値の範囲は 1 から N です。文字列リストは、「,」文字で区切られた一連の文字列です。最初の引数が定数文字列で、2 番目の引数が SET 型の列である場合、FIND_IN_SET() 関数はビット計算を使用するように最適化されます。 str が strlist にない場合、または strlist が空の文字列である場合、戻り値は 0 です。いずれかのパラメータが NULL の場合、戻り値は NULL になります。最初の引数にカンマ (',') が含まれている場合、この関数は正しく動作しません。
コードをコピーします