gpt4 book ai didi

mysql - SQL 将 select 中的内容替换为左连接

转载 作者:行者123 更新时间:2023-11-29 21:13:42 26 4
gpt4 key购买 nike

我有以下查询,效果很好:

SELECT 'User ID' AS 'uid',
'E-Mail' AS 'email',
'Reason' AS 'reason'
UNION ALL
SELECT a.subid AS 'uid',
a.email AS 'email',
b.data AS 'reason'
FROM sms7l_subscriber a
LEFT JOIN sms7l_history b ON a.subid = b.subid
WHERE (a.confirmed = 0
OR a.enabled = 0
OR a.accept = 0)
AND b.action = unsubscribed

现在我想直接对 b.data 进行一些字符串替换...它包含一个难以读取的字符串,例如- 'REASON::UNSUB_SURVEY_FREQUENT REASON::UNSUB_SURVEY_IRRELEVANT REASON::文本字段中的一些文本'

我想将“REASON::”替换为“Reason:”,并将“UNSUB_SURVEY_FREQUENT”替换为相应的字符串等.我需要对“b.data”进行大约 4-5 个字符串替换

我尝试了以下方法:

SELECT 'User ID' AS 'uid',
'E-Mail' AS 'email',
'Reason' AS 'reason'
UNION ALL
SELECT a.subid AS 'uid' , a.email AS 'email',
REPLACE (b.data,
'REASON::',
'Reason: ') AS 'reason'
FROM sms7l_subscriber a
LEFT JOIN sms7l_history b ON a.subid = b.subid
WHERE (a.confirmed = 0
OR a.enabled = 0
OR a.accept = 0)
AND b.action = unsubscribed

但是这不起作用。不幸的是,我必须在单个查询中执行此操作,并且它必须包含替换内容。任何有关如何正确包装替换命令的提示都会很棒。

更新:感谢您迄今为止的投入。以下是我错过提及的一些可能导致一些困惑的附加信息:这是一个 MySQL 数据库,我不想实际替换数据库本身中的字符串或创建新表 - 我只想替换查询结果中的字符串。这背后的原因是:我使用的 cms 有一个非常方便的工具,它允许我将 mysql 查询的结果呈现为格式良好的 html 表(可排序、可搜索等)。不幸的是,我只能使用单个查询,并且无法调用任何进一步的过程来格式化查询结果。结果的第一行可以设置为标题,因此可以设置查询开头的“union all”语句。因为我希望该表易于阅读,所以我想替换(翻译)“b.data”上的字符串。例如。而不是“REASON::UNSUB_SURVEY_IRRELEVANT”,我想要“原因:时事通讯的内容不再让我感兴趣”...“REASON::UNSUB_SURVEY_FREQUENT”应该得到相应的翻译...

我希望即使 SQL 查询最终变得相当复杂,它也能帮助我为我的 cms 编写一个合适的模块。

错误信息:

1064 You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version
for the right syntax to use near... (and than comes the query string).

(感谢 SQL 查询的格式更改 - 现在更适合阅读)。

最佳答案

您必须执行 UPDATE 查询才能更改数据,并且此更新不需要在列标题上使用 UNION

    UPDATE sms7l_subscriber a 
LEFT JOIN sms7l_history b ON a.subid = b.subid
SET b.data = REPLACE (b.data, 'REASON::','Reason: ')
WHERE (a.confirmed = 0 or a.enabled = 0 or a.accept = 0) and b.action = unsubscribed

这是标准 ANSI,因为您没有指定 RDBMS

关于mysql - SQL 将 select 中的内容替换为左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36139045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com