我在phpMyAdmin中有一个mySQL表(在服务器中),并且在创建和保存新列时遇到问题。
表名称为'visage',它存在并且已经具有以下变量:
ind1 int(15)
lien1 varchar(2083)
dire text
ind2 ind(15)
lien2 varchar(2083)
delta int(15)
我想通过使用SELECT / CASE / WHEN添加一个名为'inddir'的新列,其中值将取决于'ind1'和'dire'列中的值:
SELECT *,
CASE
WHEN `dire` = 'der' THEN ((ind1*10)+0)
WHEN `dire` = 'izq' THEN ((ind1*10)+1)
WHEN `dire` = 'del' THEN ((ind1*10)+2)
WHEN `dire` = 'atr' THEN ((ind1*10)+3)
WHEN `dire` = 'arr' THEN ((ind1*10)+4)
WHEN `dire` = 'abj' THEN ((ind1*10)+5)
END AS `inddir`
FROM `visage`
此请求无效:
->在phpMyAdmin中:https://ibb.co/54GpX4N
我直接在代码中获得错误:“无法识别的关键字。(在AS附近)”和“意外令牌。(在inddir
附近)https://ibb.co/1ZZ4rc1
但是,当我不使用“ AS indir
”时,mySQL会按照我想要的方式创建一个新列,但是其名称是完整的查询->并且我无法保存此列列。
->在phpMyAdmin中:https://ibb.co/PY82Kwq
有人可以告诉我如何按预期方式创建inddir
列,然后将其保存在mySQL表中吗?
非常感谢您。
答案 0 :(得分:0)
我使用heidiSQL,它可以和我一起工作。您可以同时在以下版本中使用和不使用“ AS”关键字进行尝试吗?
SELECT *,
case
when `currency` = 'USD' then 7
when `currency` = 'EUR' then 8
when `currency` = 'JPY' then 9
END as `newcolum`
FROM accounts;
SELECT *,
case
when `currency` = 'USD' then 7
when `currency` = 'EUR' then 8
when `currency` = 'JPY' then 9
END
FROM accounts;