为什么我得到#1060 - 重复列名'id'
SELECT COUNT(*) FROM (SELECT * FROM `tips` `t` LEFT JOIN
tip_usage ON tip_usage.tip_id=t.id GROUP BY t.id) sq
Run Code Online (Sandbox Code Playgroud) 我想要一个解决方案来插入一个记录,如果它不存在所以我在这里搜索并找到了解决方案,但我有另一个问题
INSERT INTO closed_answers (question_id, subject_id)
SELECT * FROM (SELECT 2, 2) AS tmp
WHERE NOT EXISTS (
SELECT question_id FROM closed_answers WHERE question_id = 2 AND subject_id = 2
) LIMIT 1
Run Code Online (Sandbox Code Playgroud)
输出是
#1060 - Duplicate column name '2'
Run Code Online (Sandbox Code Playgroud)
如果我使用任何不相同的2个数字它将起作用,但当2个数字相同时出现问题
我想在 mysql 表中添加一个新列,但我想忽略添加列,如果该列已经存在
我目前正在使用
ALTER IGNORE TABLE `db`.`tablename` ADD COLUMN `column_name` text NULL;
Run Code Online (Sandbox Code Playgroud)
但这是抛出一个错误说: "ERROR 1060 (42S21): Duplicate column name 'column_name'"
即使我正在使用 IGNORE,这也不起作用
我希望它使用普通的 SQL 语句而不是存储过程来工作
由于我没有创建的代码中的错误,我在查询时遇到了一些问题.
$query = $this->db->query("ALTER TABLE `" . DB_PREFIX . "customer` ADD `customer_type` TINYINT(1) NOT NULL;
Run Code Online (Sandbox Code Playgroud)
我不是编码员,但到目前为止修复了(我认为)错误.通过与不抛出错误的其他查询进行比较并在stackoverflow上阅读相当多的类似帖子,我添加了一个缺少的引号,括号和分号.没有更多错误,但不确定这是否是正确的做法?我最终得到了这个:
$query = $this->db->query("ALTER TABLE `" . DB_PREFIX . "customer` ADD `customer_type` TINYINT(1) NOT NULL;");
Run Code Online (Sandbox Code Playgroud)
但现在,我得到一个重复的列错误1060"重复列名称".所以我做了同样的事情,谷歌搜索了它,搜索stackoverflow并发现一些使用别名的例子和一堆额外的代码行,这是我的头脑.这段代码位于一个.php文件的旁边,有人会亲自握住我的手吗?你可以认为这是你今天的好事!谢谢你的时间.