MySQL 使用 INSTR 的子查询
MySQL subquery using INSTR
下面的查询将 select 来自 table 1 的所有 name
记录,这些记录不在 table 2:
SELECT t1.name
FROM t1
WHERE t1.name NOT IN (SELECT t2.name from t2)
这适用于 name
字段的完全匹配,但不适用于部分匹配。我如何修改查询,以便它 select 只有 table 1 中的 name
记录,其中 没有部分 的 name
上诉 table 2?
我怀疑答案将涉及使用 INSTR,但我不确定语法。谢谢。
加入即可完成工作
CREATE TABLE test1 (
name VARCHAR(10);
)
CREATE TABLE test2 (
name VARCHAR(10);
)
INSERT INTO test1 VALUES
( 'x123' ),
( 'y123' ),
( 'z123' );
INSERT INTO test2 VALUES
( '123' ),
( '423' ),
( '23' );
SELECT t1.name, t2.name
FROM test1 t1
JOIN test2 t2
ON INSTR(t1.name, t2.name ) = 0
ORDER BY t1.name;
下面的查询将 select 来自 table 1 的所有 name
记录,这些记录不在 table 2:
SELECT t1.name
FROM t1
WHERE t1.name NOT IN (SELECT t2.name from t2)
这适用于 name
字段的完全匹配,但不适用于部分匹配。我如何修改查询,以便它 select 只有 table 1 中的 name
记录,其中 没有部分 的 name
上诉 table 2?
我怀疑答案将涉及使用 INSTR,但我不确定语法。谢谢。
加入即可完成工作
CREATE TABLE test1 (
name VARCHAR(10);
)
CREATE TABLE test2 (
name VARCHAR(10);
)
INSERT INTO test1 VALUES
( 'x123' ),
( 'y123' ),
( 'z123' );
INSERT INTO test2 VALUES
( '123' ),
( '423' ),
( '23' );
SELECT t1.name, t2.name
FROM test1 t1
JOIN test2 t2
ON INSTR(t1.name, t2.name ) = 0
ORDER BY t1.name;