如何从phpmyadmin同时运行选择和更新查询

时间:2017-12-19 07:51:57

标签: mysql phpmyadmin

我有一个场景。我有一个名为card_no的字段。有些条目是空白的。我们不想处理这个问题。有些有16位整数,有些有我需要的正确数据。我需要的是我想选择所有16位整数的记录,并用xxxxxxxxxxxxLAST4DIGITS(信用卡格式)替换它们。我能通过mysql做到吗?

enter image description here

2 个答案:

答案 0 :(得分:1)

您不必选择行。

您可以将UPDATE应用于与条件匹配的行的子集。

UPDATE scenario
SET card_no = CONCAT('xxxxxxxxxxxx', RIGHT(card_no, 4))
WHERE LENGTH(card_no) = 16

答案 1 :(得分:0)

是。但是您必须将此字段设置为char(4),因为您可能希望将数字0002存储为 0002 而不仅仅是2.所以我首先更新字段的数据类型然后更新字段根据需要输入。

-- update datatype
alter table `cards`
modify column `card_no` char(4);

-- update values in card_no
update `cards`
set `card_no` = LPAD(if(length(`card_no`) > 4, substr(`card_no`, -4, 4), `card_no`), 4, '0')
where `card_no` is not null;

' xxx'你可以在应用程序代码端执行append操作,否则它会在db中占用额外的内存。