使用 INSTR 的 MySQL 子查询

标签 mysql subquery

下面的查询将选择所有 name表 1 中的记录不在表 2 中:

SELECT t1.name
FROM t1
WHERE t1.name NOT IN (SELECT t2.name from t2)

这对于 name 的完整匹配效果很好。字段,但它不适用于部分匹配。如何修改查询,使其仅选择 name表 1 中的记录,其中 name 没有任何部分表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;

关于使用 INSTR 的 MySQL 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517732/

相关文章:

mysql - 来自使用 GROUP_CONCAT() 打包的 Tri-INNER JOIN-Relation 的重复值

MYSQL错误,无法启动服务且找不到mysql.sock

mysql - 选择值 AS (desc) 在子查询中不起作用

sql - 仅子查询和连接哪个更好?

sql server 子查询连接错误

mysql - 如何更改服务器上sql的系统变量

PHP MySQL 数组 while ==

mysql - 查询找到玩得最多的敌人

MySQL - 按多个类别运行总计

sql - 是否可以有一个由子选择定义的动态选择子句列?