在嵌套更新查询中获取错误

时间:2018-03-09 09:11:02

标签: mysql sql

我的mysql数据库中有一个alphaNumeric列(invoice_no),其值为INV0001和许多值,如INVI000040,现在我又增加了一列{{1}所以我想将invoice_prefix的整数和字母部分分隔成invoice_noinvoice_no,所以我写了一个查询来提取invoice_prefix <的字母数字部分/ p>

invoice_no

并且此查询也提供了正确的输出,但是当我尝试更新具有此类invoice_no的所有列时 为此我写了这样的查询

SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE    ( REPLACE(x.invoice_no, '9', ''), '8', ''), '7', ''), '6', ''), '5', ''), '4', ''),         '3', ''), '2', ''), '1', ''), '0', '') as alpha_only FROM user_invoices as x where x.id = 1 and x.invoice_no REGEXP '^[A-Z]'

但是当我运行此查询时,我收到此错误

  

每个派生表都必须有自己的别名

我无法理解我在做错的地方

1 个答案:

答案 0 :(得分:0)

为什么使用子查询?根据您的描述,这应该做你想要的:

update user_invoices ui
   set ui.invoice_prefix = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
              REPLACE(ui.invoice_no, '9', ''), '8', ''), '7', ''), '6', ''), '5', ''), '4', ''),
               '3', ''), '2', ''), '1', ''), '0', '')
   where ui.invoice_no regexp '[0-9]';