大家好,我有一个mySQL数据库,其中有一个名为queue的表,行由歌手和歌曲列组成。我正在使用这张表来保持歌手的升序,那里有一个自动递增ID
我想找到的正确语法是使用新的自动增量ID值将表中的第一行复制到最后一行,然后删除第一行。直到我尝试编写它时,似乎才没有挑战。任何想法都欢迎。
自得到答案以来,我已经尝试过此方法..但始终收到错误1111
UPDATE `queue`
SET `id` = MAX(id) + 1;
WHERE `id` = MIN(id);
也尝试过...怎么可能这么难。
Set $max = (SELECT MAX(id) + 1 FROM queue);
Set $min = (SELECT MIN(id) FROM queue);
UPDATE `queue`
SET `id` = $max
WHERE `id` = $min;
因此,除非有人提供了可用的答案,否则我放弃了max()min()的想法,而是转向我最初的想法,并且我非常亲密。但是我的问题是我不知道要删除的最低ID,因为它只有一次,所以我需要用MIN(id)值或以某种方式填充它。这是我的位置。
INSERT INTO queue (SELECT NULL,singer, song1 FROM queue WHERE id = 1);
DELETE FROM queue ORDER BY id ASC LIMIT 1;
答案 0 :(得分:0)
为什么不仅仅UPDATE
行通过使用id
和SET
子句来更改其WHERE
?
UPDATE `queue`
SET `id` = 21 -- (current_highest_value + 1)
WHERE `id` = 1
这样,您不必担心添加新行和删除旧行。
答案 1 :(得分:0)
我认为一切都很好,只是您需要为delete语句更新SQL_SAFE_UPDATES = 0,所以您可以尝试以下方式
print_r($customList->base_voters);