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.
也就是说,我想得到"汤姆","汤姆".
我需要这个的原因:我犯了一个错误,并允许插入重复email和email值.现在我需要删除/更改重复项,所以我需要先找到它们.
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'
我怎么能克服这个?
我正在尝试插入一个新行并使用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?
我有一个问题,让选择子查询工作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) 我试图从同一个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) 使用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)
我得到了:"非法尝试取消引用收集". …
我需要做一些看似非常简单的事情:
$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> insert into sample_elements (name,position,ownerel) values ('Namespace1',
select id from sample_elements where name='Namespace1',0);
请指导我这个.
美好的一天!
首先,我是MySQL的新手,我在使用查询更改表时遇到了一些问题.
其次,抱歉英语不好,不幸的是,这不是我的母语.
所以,是的,我有一些问题,如果你能帮助我,我将非常感激.
我有2个表:截图
外键是来自Registred表的'manufact'
所以,我想做的查询任务很少,但无法弄清楚如何做.
这是我做的第一项任务,我只想让你们检查,如果我做对了.
计算1月和2月的汽车制造商是大众的字段.
SET总计= 1月+ 2月WHERE Manufact = 3;
以下是Query我不能做的:
这就是我想出的.
DELETE FROM Registered Order by January Limit 1;
Run Code Online (Sandbox Code Playgroud)
但它没有删除表'制造商'的信息.
那我能做什么?
码:
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我是新来的,所以请抱歉编写错误的问题.我正如我在教程中所做的那样,但这对我来说太可怕了.我已经尽力了 :)
我的数据库中有一个表,我有要删除的重复记录.我不想为此创建一个包含不同条目的新表.我想要的是从现有表中删除重复的条目,而不创建任何新表.有没有办法做到这一点?
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中为各自的行业提供了重复的公司名称.
我想要的是拥有存储在行动中的特定行业中公司的唯一名称和其他数据.我希望我以一种人们可以理解的方式陈述我的问题.