嘿,伙计们对MySQL很陌生 我想要做的是根据列是否满足作为某一天某一天的条件来更新列。 我知道这是错的,但我觉得它会更好地了解我正在做的事情。
SELECT * FROM myschema.mytable WHERE WEEKDAY(OrderDate) BETWEEN 0 AND 0
ALTER TABLE myschema.mytable
ADD DateNumber INTEGER
UPDATE myschema.mytable SET DateNumber '1'
我确定我离开这里,有人能指出我正确的方向吗?
答案 0 :(得分:0)
您无法更新SELECT的结果,但您可以使用where条件进行更新,例如:
transaction
答案 1 :(得分:0)
我猜这可能是你想要的:
SELECT *, CASE WEEKDAY(OrderDate) WHEN 0 THEN 1 END DateNumber FROM mytable
这样您就不会更改实际的表格,而是添加额外的(有条件的)' DateNumber'列到输出。
使用这样的表格
CREATE TABLE mytable (Id int, OrderDate datetime, SomeNumber int null);
INSERT INTO mytable (Id, OrderDate, SomeNumber) VALUES
(1, '2016-1-7', 5),
(2, '2016-1-8', 6),
(3, '2016-1-9', 4),
(4, '2016-1-10', 1),
(5, '2016-1-11', 9),
(6, '2016-1-12', 7);
您将获得以下输出:
| Id | OrderDate | SomeNumber | DateNumber |
|----|---------------------------|------------|------------|
| 1 | January, 07 2016 00:00:00 | 5 | (null) |
| 2 | January, 08 2016 00:00:00 | 6 | (null) |
| 3 | January, 09 2016 00:00:00 | 4 | (null) |
| 4 | January, 10 2016 00:00:00 | 1 | (null) |
| 5 | January, 11 2016 00:00:00 | 9 | 1 |
| 6 | January, 12 2016 00:00:00 | 7 | (null) |
见这里:sqlfiddle