mysql - 如果一张表里有这么两行数据,数据中某一字段值为 10,100跟 100,99 时,如何找到值里有10的那一行?
巴扎黑
巴扎黑 2017-04-17 14:39:22
0
5
865

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

巴扎黑
巴扎黑

全員に返信(5)
巴扎黑
select * from table where substring_index(field, ',', 1) = '10'
最初のカンマより前の部分を切り取ります
いいねを押す +0
小葫芦

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

いいねを押す +0
迷茫

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

いいねを押す +0
Peter_Zhu

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

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

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

いいねを押す +0
Peter_Zhu

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート