相关疑难解决方法(0)

在SQL表中查找重复值

email一个字段很容易找到:

SELECT name, COUNT(email) 
FROM users
GROUP BY email
HAVING COUNT(email) > 1
Run Code Online (Sandbox Code Playgroud)

所以,如果我们有一张桌子

ID   NAME   EMAIL
1    John   asd@asd.com
2    Sam    asd@asd.com
3    Tom    asd@asd.com
4    Bob    bob@asd.com
5    Tom    asd@asd.com
Run Code Online (Sandbox Code Playgroud)

这个查询将给我们John,Sam,Tom,Tom,因为他们都有相同的email.

但是,我想要的是使用相同的name和重复name.

也就是说,我想得到"汤姆","汤姆".

我需要这个的原因:我犯了一个错误,并允许插入重复emailemail值.现在我需要删除/更改重复项,所以我需要先找到它们.

sql duplicates

1789
推荐指数
24
解决办法
265万
查看次数

MySQL错误1093 - 无法在FROM子句中指定更新的目标表

story_category我的数据库中有一个表有损坏的条目.下一个查询返回损坏的条目:

SELECT * 
FROM  story_category 
WHERE category_id NOT IN (
    SELECT DISTINCT category.id 
    FROM category INNER JOIN 
       story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)

我试图删除它们执行:

DELETE FROM story_category 
WHERE category_id NOT IN (
    SELECT DISTINCT category.id 
    FROM category 
      INNER JOIN story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)

但我得到了下一个错误:

#1093 - 您无法在FROM子句中为更新指定目标表'story_category'

我怎么能克服这个?

mysql subquery mysql-error-1093 sql-delete

556
推荐指数
10
解决办法
42万
查看次数

插入并设置max()+ 1个问题的值

我正在尝试插入一个新行并使用max()+ 1设置customer_id.原因是该表已经在另一个名为id的列上具有auto_increatment,并且该表将具有多个具有相同customer_id的行.

有了这个:

INSERT INTO customers
  ( customer_id, firstname, surname )
VALUES 
  ((SELECT MAX( customer_id ) FROM customers) +1, 'jim', 'sock')
Run Code Online (Sandbox Code Playgroud)

...我一直收到以下错误:

#1093 - You can't specify target table 'customers' for update in FROM clause
Run Code Online (Sandbox Code Playgroud)

另外,我如何阻止同时添加2个不同的客户而没有相同的customer_id?

mysql sql insert mysql-error-1093

39
推荐指数
6
解决办法
15万
查看次数

使用WHERE SELECT子查询错误的MYSQL更新

我有一个问题,让选择子查询工作UPDATE.我正在尝试以下内容:

UPDATE foo
   SET bar=bar-1
 WHERE baz=
      (
       SELECT baz
       FROM foo
       WHERE fooID='1'
      )
Run Code Online (Sandbox Code Playgroud)

foo具有主键的表名称在哪里fooID.bar并且baz是INT类型.执行此操作时,我收到以下错误:

Error: A query failed. You can't specify target table 'foo' for update 
in FROM clause
Run Code Online (Sandbox Code Playgroud)

mysql select subquery

28
推荐指数
2
解决办法
6万
查看次数

从mysql中的另一列更新一个派生值的列

我试图从同一个tabl中的另一列更新列的值e-但这失败了"ERROR 1093(HY000):你不能指定目标表'tab_1'用​​于FROM子句中的更新"

我在Mysql中有什么

DT;                  date_custom
2012-10-31 17:00:22; 0
2012-09-31 17:00:21; 0
2012-07-31 17:00:25; 0
2012-10-31 17:43:56; 0
2012-11-31 17:44:09; 0
Run Code Online (Sandbox Code Playgroud)

我在相应的date_custom字段(列)中需要什么

2012-10-31 
2012-09-31 
2012-07-31 
2012-10-31 
2012-11-31 
Run Code Online (Sandbox Code Playgroud)

换句话说,我只是希望Mysql为列DT选取相应的行,而只需要DUMP派生值date_column.这应该是一对一的.我确实有一个唯一标识行的键组合,但如果我能识别出来,我不想使用它.

这是我尝试过但没有用的东西.

Before this I created this column - date_custom as below -:
alter table tab_1
add column date_custom int not null;

# simplistic
UPDATE tab_1 SET date_custom = (SELECT SUBSTRING_INDEX(DT," " ,1) FROM tab_1);
Run Code Online (Sandbox Code Playgroud)

我也意识到我不能同时修改一个列,同时尝试访问它 - 但由于这是不同的列,所以事情不应该在这里失败,对 - 或者我做错了什么?

# using self joins on subquery
UPDATE tab_1
SET tab_1.date_custom =
(
    SELECT SUBSTRING_INDEX(a.DT," …
Run Code Online (Sandbox Code Playgroud)

mysql sql select

11
推荐指数
2
解决办法
1万
查看次数

使用join更新值

使用Hibernate,我想根据条件更新数据库中的数据,但是我收到以下错误:"遍历的节点不能为null"

这是我的数据库描述:

Account: id, email, password
Member : id, account, team
Team: id, current (and a reference to member => members)
Run Code Online (Sandbox Code Playgroud)

这是我的JPA:

UPDATE Team t SET t.current = :current LEFT JOIN t.members m WHERE t.current = :current_true AND m.account = :account
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如果我将LEFT JOIN移动到SET之前:

UPDATE Team t LEFT JOIN t.members m SET t.current = :current WHERE t.current = :current_true AND m.account = :account
Run Code Online (Sandbox Code Playgroud)

我得到了:"期待SET,发现LEFT"

如果我删除了联接:

UPDATE Team t SET t.current = :current WHERE t.current = :current_true AND t.members.account = :account
Run Code Online (Sandbox Code Playgroud)

我得到了:"非法尝试取消引用收集". …

java hibernate jpa jpql

9
推荐指数
2
解决办法
1万
查看次数

SQL更新WHERE xx和最近的记录

我需要做一些看似非常简单的事情:

$bdd->query('UPDATE mytable SET aaa = \''.$aaa.'\', bbb = \''.$bbb.'\' WHERE name = \''.$name.'\'');
Run Code Online (Sandbox Code Playgroud)

我的问题:我有多个匹配此"WHERE"的记录,我想只更新最新的记录(我有一个日期和一个id,可用于定义哪个记录是最新的)

如何更改我的WHERE以添加" AND id = the_highest_id_of_this_query "之类的内容?

mysql sql

8
推荐指数
1
解决办法
2万
查看次数

在Insert查询中使用select查询获取相同的表名

是否可以在"插入"查询中使用"选择"查询,但条件是我想为"选择"和"插入"查询使用相同的表名.
例如
mysql> insert into sample_elements (name,position,ownerel) values ('Namespace1', select id from sample_elements where name='Namespace1',0);

请指导我这个.

mysql

5
推荐指数
1
解决办法
1万
查看次数

使用删除,更新,在MySQL中插入

美好的一天!

首先,我是MySQL的新手,我在使用查询更改表时遇到了一些问题.

其次,抱歉英语不好,不幸的是,这不是我的母语.

所以,是的,我有一些问题,如果你能帮助我,我将非常感激.

我有2个表:截图

外键是来自Registred表的'manufact'

所以,我想做的查询任务很少,但无法弄清楚如何做.

这是我做的第一项任务,我只想让你们检查,如果我做对了.

  1. 计算1月和2月的汽车制造商是大众的字段.

    SET总计= 1月+ 2月WHERE Manufact = 3;

以下是Query我不能做的:

  1. 删除有关汽车制造商的所有信息,这些信息在1月份注册的汽车数量最少.

这就是我想出的.

DELETE FROM Registered Order by January Limit 1;
Run Code Online (Sandbox Code Playgroud)

但它没有删除表'制造商'的信息.

那我能做什么?

  1. 到目前为止,这是最难的:计算1月和2月登记的所有汽车并将其保存在附加区域.(应显示为Int,不带浮点.)

码:

ALTER TABLE Registered Add Column alltotal Int;
UPDATE Registered
Set alltotal = Select SUM(February + January) From Registered;
Run Code Online (Sandbox Code Playgroud)

我想要做的是,仅创建一个字段,其中将计算所有二月和一月字段的总和.

到目前为止有什么建议

PS如果我能够做到这些,我将能够自己完成其他任务:)

PS2我是新来的,所以请抱歉编写错误的问题.我正如我在教程中所做的那样,但这对我来说太可怕了.我已经尽力了 :)

mysql

5
推荐指数
1
解决办法
75
查看次数

从表中删除重复的行

我的数据库中有一个表,我有要删除的重复记录.我不想为此创建一个包含不同条目的新表.我想要的是从现有表中删除重复的条目,而不创建任何新表.有没有办法做到这一点?

 id           action
 L1_name      L1_data
 L2_name      L2_data
 L3_name      L3_data   
 L4_name      L4_data
 L5_name      L5_data
 L6_name      L6_data
 L7_name      L7_data
 L8_name      L8_data
 L9_name      L9_data
 L10_name     L10_data
 L11_name     L11_data
 L12_name     L12_data
 L13_name     L13_data 
 L14_name     L14_data
 L15_name     L15_data
Run Code Online (Sandbox Code Playgroud)

看到这些都是我的字段:
id对于每一行都是唯一的.
L11_data对于相应的动作字段是唯一的.
L11_data有公司名称,而行动有行业名称.

因此,在我的数据中,我在L11_data中为各自的行业提供了重复的公司名称.

我想要的是拥有存储在行动中的特定行业中公司的唯一名称和其他数据.我希望我以一种人们可以理解的方式陈述我的问题.

mysql sql duplicates

4
推荐指数
1
解决办法
7207
查看次数