【发布时间】:2018-07-16 13:46:52
【问题描述】:
我在如下表中有一条记录:
aaaa bbbbb_ ccccc_1
或
gggg jjjjj_fffff _34
注意空格和下划线以及下划线和空格。
注意字符串和数字格式可能不同。
我想使用单行查询在数据库中选择和更新这些信息。
到目前为止我做了什么:
$update = " UPDATE table
SET SKU = REPLACE((
SELECT SKU
FROM table
WHERE SKU LIKE '%\_ %' OR SKU LIKE '% \_%'
),replace('_ ', ' _'),replace('_', '_'))";
翻译: 更新表 SKU = 从选择案例 1 (_) 或案例 2 (_) 替换为简单的 _
问题: 此查询失败...为什么?
编辑 1:
Here 是一个链接,您可以在其中查看所有包含“_”或“_”的记录。 我正在使用这个:
SELECT SKU FROM table WHERE SKU LIKE '%\_ %' OR SKU LIKE '% \_%'
使用 Tim 的建议,上面的查询没有列出 700 多条记录,而是显示了 530 条。因此,蒂姆的查询对少数人有效,但并非对所有人都有效
【问题讨论】:
-
这里的查询真的很混乱。似乎您的 WHERE 条件应该在父查询上,而不是子查询上,您为什么要在第二次和第三次调用替换?
-
请编辑您的问题并向我们展示实际数据。谢谢。
-
@TimBiegeleisen 做到了 -> 编辑 1