検索

ホームページ  >  に質問  >  本文

mysql - 如果一张表里有这么两行数据,数据中某一字段值为 10,100跟 100,99 时,如何找到值里有10的那一行?

如果只用sql语句是可以行的吗?

巴扎黑巴扎黑2873日前911

全員に返信(5)返信します

  • 巴扎黑

    巴扎黑2017-04-17 14:41:22

    select * from table where substring_index(field, ',', 1) = '10'
    最初のカンマより前の部分を切り取ります

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 14:41:22

    あなたの質問がよくわかりません。私の理解では、単純に select * from test where id = 10 というわけではありません。

    返事
    0
  • 迷茫

    迷茫2017-04-17 14:41:22

    あいまい一致を使用します: select * from test where columns like "%10%"
    追記: このような要求は少し奇妙に感じます。データベース設計に無理があるのでしょうか?

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:41:22

    質問の観点から見ると、解決策は
    フィールドをセグメント化して判断するために使用されるカスタム関数です。
    1. クエリ ステートメントを追加します。
    select * from table where 1=hasTen(column)

    大まかな妥協案
    '10,%' のような列があるテーブルから * を選択
    ||
    '%,10,%' のような列があるテーブルから * を選択
    || >select * from table where columns like '%,10'

    フィールドが a と b の形式でなければならないことが確認できれば、解決が簡単になる可能性があります。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:41:22

    参考: select * from test where concat(',', column, ',') like "%,10,%"

    返事
    0
  • キャンセル返事