mayu
2025/10/24 (金) 10:53:08
048a4@6c788
テーブルにある摘要欄(文字列フィールド)を
Like複数の文字列条件での抽出はクエリに Like "ABC" Or Like "DEF" Or ・・・・
条件部を他のテーブルに設定した値で可能でしょうか?
そうしておけば条件の変更追加も分かり易く簡単に出来る
達成目標に対し、行動目標や手段がそこまで明確なのですから
時間をかけてでも試行錯誤すれば、自ずからご希望の結果が得られたのではないか、と推測します
以下、結果セットが同じになるSQLの記述方法をいくつか載せておきます
■DDL
CREATE TABLE t_摘要 (
x_id AUTOINCREMENT PRIMARY KEY
, 摘要欄 VARCHAR(100)
);
CREATE TABLE t_条件 (
y_id AUTOINCREMENT PRIMARY KEY
, 条件部 VARCHAR(50)
);
■データ例
t_摘要
| x_id | 摘要欄 |
|---|---|
| 1 | ABCDEF |
| 2 | ACE |
| 3 | DEFFE |
| 4 | BAACD |
| 5 | MBABC |
| 6 | ONJBD |
| 7 | B_DEF_ABCF |
| 8 | DEABFC |
t_条件
| y_id | 条件部 |
|---|---|
| 1 | ABC |
| 2 | DEF |
■DML
SELECT * FROM t_摘要 x
WHERE EXISTS
(
SELECT 1 FROM t_条件 y
WHERE x.摘要欄 Like '*' & y.条件部 & '*'
);
SELECT * FROM t_摘要 x
WHERE EXISTS
(
SELECT 1 FROM t_条件 y
WHERE InStr( 1, x.摘要欄, y.条件部, 1 ) > 0
);
SELECT DISTINCT x.*
FROM t_摘要 x
, t_条件 y
WHERE InStr( 1, x.摘要欄, y.条件部, 1 ) > 0
;
SELECT DISTINCT x.*
FROM t_摘要 x
INNER JOIN t_条件 y
ON ( x.摘要欄 Like '*' & y.条件部 & '*' )
;
■結果
| x_id | 摘要欄 |
|---|---|
| 1 | ABCDEF |
| 3 | DEFFE |
| 5 | MBABC |
| 7 | B_DEF_ABCF |
通報 ...