ホームページ  >  記事  >  バックエンド開発  >  mysql は文字列内の文字に基づいて、フィールド内の文字と一致するデータをどのようにクエリするのでしょうか?

mysql は文字列内の文字に基づいて、フィールド内の文字と一致するデータをどのようにクエリするのでしょうか?

WBOY
WBOYオリジナル
2016-06-20 12:28:13961ブラウズ

例:
文字列は A、B、C の場合があります
B、C の場合もあります
C の場合もあります

A、B、または C が複数あります

文字に A、B、C が含まれる場合、fID が A、B、または C であるデータをクエリしたいとします。
文字に B、C が含まれる場合、データをクエリしたいとしますin fID fID B または C のデータ

CREATE TABLE `tab` (
`fID` VARCHAR(2) NULL DEFAULT NULL,
`fName` VARCHAR(10) NULL
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
INSERT INTO `tab` (`fID`, `fName`) VALUES
('A', 'A01'),
(' A '、'A02')、
('A'、'A03')、
('A'、'A04')、
('B'、'B02')、
( 'B'、'B03')、
('B'、'B04')、
('B'、'B01')、
('B'、'B05')、
('C', 'C02')、
('C'、'C03')、
('C'、'C01')

;


ディスカッションへの返信 (解決策)

入力した文字列は (または処理後のものであるとします) ) A、C、B 形式の場合、
厳密一致
select * from tab where find_in_set(fID, '$inp')
あいまい一致
select * from tab where '$inp' like concat('%', fID, '%')

xuzuning の回答に感謝します。find_in_set(fID, '$inp') を使用すると問題が解決しました

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。