MySQL - 删除不在find_in_set中的位置

2024-03-28

我正在尝试找到正确的语法来删除不在逗号分隔行中的记录。

table A

| id | product_id | attribute_id |
|----|------------|--------------|
| 1  | 123        | 45           |
| 2  | 123        | 46           |
| 3  | 124        | 34           |
| 4  | 124        | 33           |

table B

| code | Axis  |
|------|-------|
| 123  | 45,46 |
| 124  | 34    |

我的目标是从表 A 中删除属性 id 不在表 B 轴值中的所有行(在本例中为 id = 4 的行)。

我尝试做一个SELECT before:

SELECT A.attribute_id, A.product_id
FROM tableA as A
LEFT JOIN (SELECT * FROM tableB) AS B
ON FIND_IN_SET(A.attribute_id, B.`axis`)

但没有任何运气。

我怎样才能做到这一点?


您可以尝试以下操作SELECT数据:

SELECT A.attribute_id, A.product_id 
FROM tableA AS A LEFT JOIN tableB AS B ON A.product_id = B.code
WHERE IFNULL(FIND_IN_SET(A.attribute_id, B.Axis), 0) = 0

您可以使用以下内容DELETE表 A 上的行(基于SELECT):

DELETE FROM tableA WHERE id IN (
    SELECT A.id 
    FROM tableA AS A LEFT JOIN tableB AS B ON A.product_id = B.code
    WHERE IFNULL(FIND_IN_SET(A.attribute_id, B.Axis), 0) = 0
)

demo: http://sqlfiddle.com/#!9/3a3e13/6/0 http://sqlfiddle.com/#!9/3a3e13/6/0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL - 删除不在find_in_set中的位置 的相关文章

  • 将数据库结果转为数组

    我刚刚为组织查询分层数据的 闭包表 方式制作了更新 添加 删除部分 如本幻灯片第 70 页所示 http www slideshare net billkarwin sql antipatterns strike back http www
  • 将数字格式设置为缩写数字

    我有一个数据库 其中有一列包含数字格式的值 例如 5 000 for 5k 86 600 for 86 6k 4 100 000 for 4 1m 在浏览器中显示时 它应该显示为 5000 的 5k 86 600 的 86 6k 等 我需要
  • MySQL 视图:在另一个计算字段中引用一个计算字段(按名称)

    例如 如何定义具有两个计算字段的视图 TableName BlueSquares TableName RedSquares AS TotalSquares TableName BlueCirles TableName RedCircles
  • mysql 查询多边形内的点 - 没有结果

    我很确定我在这里做错了很多事情 但我不确定是什么 该表 减去一些字段 CREATE TABLE IF NOT EXISTS stuff id int 10 unsigned NOT NULL AUTO INCREMENT lat decim
  • 将数据导入mysql的最佳方法

    我有一个包含 500 000 行和大约 10 列的表 该表处于访问状态 我如何将其导入到mysql 这是关于该主题的文章 http www kitebird com articles access migrate html http www
  • 将一个表的所有行复制到另一个表

    我有两个数据库MySQL and SQL Server 我想在其中创建表SQL Server并复制表中的所有行MySQL到新表中SQL Server 我可以在中创建表SQL Server与 一样MySQL 使用以下代码 List
  • 按任意顺序对 SQL 行输出进行排序?

    因此 在我的数据库中 我存储乐器名称 以及各种其他属性 比方说id是主键 并且name是唯一的密钥 在 PHP 脚本中 我按仪器类别选择项目 如下所示 name mysql real escape string POST name row
  • 在 MySQL 中存储 IPv6 地址

    正如 需要支持 ipv6 的 inet aton 和 inet ntoa 函数 http bugs mysql com bug php id 34037 目前没有用于存储 IPv6 地址的 MySQL 函数 用于存储 插入的推荐数据类型 函
  • 使用日期作为窗口函数实现 RANGE

    从 SQLAlchemy 1 4 25 开始 没有内置支持 所以我尝试使用该解决方案here https stackoverflow com a 69606048 11277108 这是我的复制 from datetime import d
  • 使用 mysql_real_escape_string() 时出现访问被拒绝错误

    我试图在数据进入我的数据库之前转义一些数据 但我不断收到此错误 Warning mysql real escape string Access denied for user 现在 这通常表明我尚未连接到数据库 它还声明 使用密码 NO 我
  • 在“等待初始通信数据包”时失去与 MySQL 服务器的连接

    我见过许多堆栈溢出问题 一些博客尝试了解决方法 但没有任何帮助 因此重新发布问题并提供更多详细信息 我看到 MySQL 和 Python 应用程序出现奇怪的行为 详细信息如下 1 我的应用程序在 MySQL 上运行得非常好 在许多平台上进行
  • NodeJs util.promisify 不是一个函数

    我正在尝试 promisify mysql 函数 但是当我运行它时 控制台显示此错误util Promisify is not a function 这是我的代码 var util require util var mysql requir
  • postgresql中插入语句中的加密密码抛出错误(需要添加显式类型转换)

    刚接触 postgresql 这可能很简单 但我不明白 我在 mysql 中有这个 insert into APP USERS VALUES 1 admin adminemailid System Administrator SysAdmi
  • Codeigniter 活动记录选择、左连接、计数

    我有一个显示数据库查询结果的表单 这些结果可以有许多其他资产与之相连 我想找到一种方法来显示每个元素有多少资产 例如 我的表是英格兰地区 另一个表是用户居住的地方 我当前有这个代码 this gt db gt select this gt
  • 表“DBNAME.hibernate_sequence”不存在

    我有一个使用 spring data jpa 的 Spring Boot 2 0 1 RELEASE 应用程序
  • MySQL 存储映像 BLOB 不良实践性能

    我知道不建议在 SQL 中将图像存储为 BLOB 然而 在我的本地 PC 和服务器上同时工作使得在两者之间同步图像变得困难 是否还有理由不单独使用 BLOB 作为备份 这会在本地创建缓存文件 以静态方式提供服务 本质上 只有选择 BLOB
  • 检索多行最后插入的 id

    当将数据插入具有自动递增 PK 的表时 我需要获取该密钥以在另一个语句中使用 正如许多问题所示 这可以在 PHP 中使用mysql insert id 但是 我一直将插入内容分组在一起 因此一次插入不止一行 我这样做是因为我猜测可能会存在一
  • Mysql使用tenant_id进行复合索引

    我们有一个多租户应用程序 该应用程序有一个包含 129 个字段的表 这些字段都可以在 WHERE 和 ORDER BY 子句中使用 我花了 5 天的时间试图找出最适合我们的索引策略 我获得了很多知识 但我仍然有一些问题 1 创建索引时 我应
  • MySQL ORDER BY rand(),名称 ASC

    我想获取一个包含 1000 个用户的数据库并随机选择 20 个用户 ORDER BY rand LIMIT 20 然后按名称对结果集进行排序 我想出了以下查询not像我希望的那样工作 SELECT FROM users WHERE 1 OR
  • 初学者 MYSQL 错误 - 访问被拒绝

    错误 1045 28000 用户 root localhost 的访问被拒绝 使用密码 N 哦 我已经尝试了一切 我已经阅读了一页又一页的答案 但似乎没有人知道正确的答案 当我尝试登录我的数据库时 我只是收到上述错误 我还没有设置密码或其他

随机推荐