MySQL一列等于另一列?

时间:2011-01-29 22:53:09

标签: php mysql

如何在php / mySQL中使列与另一列相等?

id是自动增量,xid应该是唯一的。我可以在SQL中创建xid = id吗? (原因是记录更改但我会在需要时解释更多)

要使xid唯一,最好的方法是复制id

的自动增量
+----+-----+----------+----------------+------+---------+
| id | xid | title    | body           | page | visible |
+----+-----+----------+----------------+------+---------+
|  1 |  1  | my title | my body        | NULL |       1 | 
|  2 |  2  | my title | my body edited |    1 |       0 | 
+----+-----+----------+----------------+------+---------+

$queryX = "INSERT INTO table (xid, title, body, page, visible) 
VALUES (, 'Plays', 'it's playing', 'book page', 1)";

2 个答案:

答案 0 :(得分:4)

我不明白你为什么要这样做,但我的方法是使用两个查询和LAST_INSERT_ID()

INSERT INTO table (title, body, page, visible) 
VALUES ('Plays', 'it''s playing', 'book page', 1);
UPDATE table SET xid = id WHERE id = LAST_INSERT_ID();

您可能希望使用TRIGGER执行此操作,因此您无需手动执行此操作。

答案 1 :(得分:0)

在一个查询中:

INSERT INTO table (xid, title, body, page, visible) VALUES 
( SELECT MAX(xid) + 1, .... )

它会放置独特的xid,也可以用id来完成,我不太确定我是不是需要...