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;