下面的sql查询在我的运行MySQL5的开发服务器上运行得很好,但是当我在运行MySQL4的实时服务器上尝试它时,它抛出了一个错误,有人能告诉我如何调整我的查询以在MySQL4上运行吗?
select * FROM Properties WHERE propertyid IN (select id from todelete)
我尝试创建应该删除重复表行的mysql事件。
这是我的查询
DELETE FROM locations
WHERE id NOT IN (SELECT id
FROM locations
GROUP BY acc_id,`date`)
我发现了一个错误:
Error Code: 1093
You can't specify target table 'locations' for update in FROM clause.
如何更改查询以使其工作?
我一直试图在Mysql 5.7中执行以下查询。
DELETE FROM tablename1 T1
WHERE EXISTS (
SELECT *
FROM tablename1 T2
WHERE T2.code = T1.code
AND T2.dname = T2.dname
AND T2.created_date > T1.created_date
);
但是它给我带来了一个错误:原因: liquibase.exception.DatabaseException:您的SQL语法出现了错误;检查与MySQL服务器版本对应的手册,以获得在T1附近使用的正确语法。
此查询在Oracle中
当配置文件是参与者时,此查询将获取具有最多证据记录的配置文件。有没有办法让它在mysql查询中更快?
SELECT profiles.*, count(*) AS counted_profiles
FROM `profiles`
INNER JOIN (SELECT ev.actor_id
FROM evidences AS ev
WHERE ev.actor_type = 'Profile') AS ev2
ON ev2.actor_id = profiles.id
GROUP BY ev2.actor_id
ORD
我试图在Vapor应用程序中运行一个SQL查询,并将其解码为一个MySQLModel,但显然它返回了一个错误。
final class ClassA: MySQLModel {
var id: Int?
var title: String
var description: String
}
但是当我运行一个简单的Select原始查询时,它会返回一个解码错误:“键‘title’所需的类型'String‘的值”。这很奇怪,因为在MySQL控制台中运行的sql确实正确运行。问题是,当我解码相同的查询时,而不是使用MySQLModel,而是使用如下内容:
fin
尝试使用"SELECT *“而不是"DELETE FROM”进行查询,它运行得很好。
DELETE FROM `80dage_garmin_track` t1 WHERE EXISTS (
SELECT 1
FROM `80dage_garmin_track` t2
WHERE t1.Length = t2.Length
AND t1.Time = t2.Time
AND t1.idgarmin_track > t2.idgarmin_track
)
MySQL Error: .#1064 -您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以获得
我有一张MySQL表,用来存储酒店预订的数据。我需要一个查询,看看每个日期住在酒店的客人的数量。
我能够创建一个查询(使用子查询),但是它执行得非常慢。是否有更好的方法来获取所请求的数据?(例如,将表连接到它自己,或者其他什么。)
我的问题是:
SELECT CheckOutDate AS Date,
(SELECT SUM(NrOfGuests) FROM tblGuests tG
WHERE tG.CheckInDate <= tblGuests.CheckOutDate
AND tG.CheckOutDate > tblGuests.CheckO
我很好奇MySQL的where ... in (...)语句是否删除了作为优化的副本。
例如,如果我使用子查询,使用DISTINCT删除重复项是否重要?
一个示例查询:
SELECT * FROM foo WHERE bar_id IN (
SELECT id FROM bar where user_id = 4
);
子查询有可能返回重复的bar.id's。
MySQL查询优化是否使查询更好?
SELECT * FROM foo WHERE bar_id IN (
SELECT DISTINCT id FROM bar where user_id = 4
);
从我在
我需要这个查询在计数为0时返回结果,而不是仅仅产生一个空集。我如何调整我的查询,使其生成下面的表,其中计数和适当的日期都是'0‘?
mysql> select count(test.id), date(insert_datetime) date
from db.table test where date(insert_datetime)='2015-08-17'
group by date(insert_datetime);
+--------------+------------+
| count(test.id) | date |
我需要一个优化以下mysql删除查询的建议:
$group_id = '1234';
// DELETE GROUP DISCUSSION POSTS
mysql_query("DELETE FROM table_groupposts
WHERE grouppost_grouptopic_id
IN (SELECT grouptopic_id from table_grouptopics
WHERE g
要在MySQL数据库中查找重复记录。这可以写成:
SELECT address, count(id) as cnt FROM list
GROUP BY address HAVING cnt > 1
这给了我:
101 Saint ST 3
我想拉出它,这样它就可以显示重复的每一行。示例如下:
SIM JANE 101 Saint ST
JOHN SMITH 101 Saint ST
有谁知道怎么做吗?我尽量避免执行第一个查询,然后在代码中使用第二个查询查找重复项。
几乎每个人都遇到了以下子查询错误:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery
在这种情况下,每个答案都建议我们用left outer join替换子查询。
支持使用in操作的限制子查询是一个很好的特性,因为许多子查询都与in操作符一起使用,但是为什么MySQL开发组决定不将其引入MySQL,是否有任何原因使这些操作符在子查询中受到限制?
2016年11月30日,MySQL8.0最新的测试版文档草稿,Mysql仍然不支持这种子查询。
下面是一个mysql查询,它从user_property获取数据,提供具有特定条件的表。因此,在这个查询中,我需要一个来自用户表的用户id(我可以从具有公司名称的用户表中识别用户id和用户表)。这就是我使用第二个选择查询的原因,但我无法得到结果。
$sql = "SELECT * FROM user_property upr, offers ofr,
WHERE ofr.property_id = upr.property_id
AND ofr.agent_id = (
SELECT id FROM users
我读过MySQL可以缓存UNION's,但同时我也读到了..
避免查询开始时的注释(和空格)- query做简单的优化来检查查询是否可以缓存。正如我前面提到的,只有SELECT查询才被缓存--所以它会查看查询的第一个字母,如果是“S”,则跳过它在缓存中进行查询查找。
来源:
那么,既然UNION的开头是括号,那么它们是如何缓存的呢?
根据mysql.com:
(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a
我目前正在使用以下内容更新我的表:
UPDATE Check_Dictionary
SET InDict = "No" WHERE (Leagues, Matches, Line) IN (SELECT * FROM (
SELECT Leagues, Matches, Line FROM Check_Dictionary
WHERE InDict = "No")as X)
但是,当我拥有大型数据集(40k+行)时,这似乎相当低效/缓慢。我正在进行的所有搜索都表明,与子
我应该在每个子查询中执行一个WHERE,还是只在主查询上执行?我的问题是关于表演。例如:
,在所有子查询中,
SELECT ...
FROM ...
WHERE id_user = :id_user
UNION ALL
SELECT ...
FROM ...
WHERE id_user = :id_user
在这种情况下,每个子查询将具有相同的WHERE子句,由id_user进行过滤。
,其中仅在主查询上
SELECT
SUBQUERY.*
FROM (
SELECT ..., id_user
FROM ...
UNION ALL
SELECT
我有一个MySQL查询,我认为它会抛出一个异常,但它确实not.Just想找出为什么?查询为:
select count(distinct uid)
from nov_visit_20161201
where pv_listen>0
and uid in (select distinct uid from nov_visit_20161120 where pv_listen>0);
问题是表nov_visit_20161120没有pv_listen列,但是查询运行得很好。当我单独运行子查询时:
select distinct uid from nov_visit_2016112
当我添加子查询时,mysql更新语法似乎不起作用。对更新语法的子查询有限制吗?
不管用:
update books set imagename ='name'
where book_ID='(select book_ID from books order by book_ID desc limit 1)';
作品:
update books set imagename ='name'
where book_ID='101';
我正在尝试将MS Access查询转换为MySQL,问题是将MS Access top转换为MySQL limit以获得相同的结果。当我将查询更改为limit时,会发现此版本的MySQL在子查询中不支持limit。
这是MS Access查询:
SELECT a.FK_CONTRIBUTOR_ID
FROM tPUBLISHERS
INNER JOIN (tCONTRIBUTORS AS b
INNER JOIN tCLIPS AS a ON b.CONTRIBUTOR_ID = a.FK_CONTRIBUTOR_ID)
ON tPUBLISHERS.PUBLISHER
表名radacctid是pk帐户,唯一的是订阅者在连接时生成的几乎唯一的字符串。
这是mysql查询,它输出重复的条目,我希望以相同的命令y顺序删除结果,以自动完成这个过程。
select *
from radacct
group by acctuniqueid
HAVING
(radacct.acctuniqueid > 1)
我有一个查询,它可以很好地处理MySQL,但是如果我在Oracle中执行它,我会得到以下错误:
SQL Error: ORA-01779: cannot modify a column which maps to a non key-preserved table
01779. 00000 - "cannot modify a column which maps to a non key-preserved table"
*Cause: An attempt was made to insert or update columns of a join view whic
我需要删除重复的电子邮件。 在SQLite中,这是正确的sql查询: delete from person
where id in (select id from person
group by email
having count(email) > 1) 但是当我尝试在MySQL上使用相同的查询时,我得到了错误: You can't specify target table 'person' for update in FROM clause 另外,我也尝试过使用inner,但没有帮助。 ?
我正在用mysql查询表,这个表每分钟都在增加。该查询还用于分页,也具有limit子句。该表由商店网站上正在访问的用户会话组成。我已经为store_id添加了索引,session_id下面是查询。
SELECT *,
GROUP_CONCAT(email) as email_id
FROM
(
SELECT *
FROM clickstream
WHERE clickstream.store_id = ''
ORDER BY id DESC
) as clck
GROUP BY session_id
ORDER BY s
在我前面的一个问题中,我已经提出了解决方案
MySQL1235错误:
错误代码: 1235。这个版本的MySQL还不支持‘限制& IN/ALL/ANY/SOME子查询’
下面的将抛出1235:
DELETE
FROM job_detail_history
where id not in (select id from job_detail_history order by start_time desc limit 2);
为此,我得到了@Zaynul Abadin Tuhin给出的解,它也适用于我。他只是在我的子查询上添加了一个选择层。据他所说,这是一些my
我在清理MySQL表中的数据时遇到了问题。问题是,我们需要使用子查询中的表来确定需要删除的内容。
DELETE
FROM dates
WHERE event_ref IN (*list of event_refs*)
AND person_ref IN (
SELECT person.person_ref
FROM person
JOIN dates ON dates.person_ref = person.person_ref AND dates.event_ref = 14
WHERE dates.date < CURDATE()
)
Subquery给所有的人一个
我有一个MySQL查询,它将得到列中的金额之和。我发现我的数据中也有负值。我想把正数和负值分开。你能帮我吗?
我试过这个查询..。但是它给了我一个无效的使用组函数。
以下是我的查询:
SELECT sum(AMOUNT) from deposit where type = 42 and sum(AMOUNT) > 0
这是我的mysql查询。有谁知道错误是什么以及如何修复吗?
谢谢。
SQL query: Documentation
INSERT IGNORE
INTO thread_user (thread_id,user_id,last_read_date)
SELECT 24,1,NOW()
UNION
SELECT 24, b.a, NOW()
FROM (SELECT (2,3,4) AS a) b
MySQL said: Documentation
#1241 - Operand should contain 1 column(s)
我在PHP MySQL PDO中有这样的查询: SELECT p.las_plano_id, p.mensalidade_diferenciada, v.las_tipos_planos_id, t.valor_mensalidade
FROM isw_planos AS p
INNER JOIN isw_planos_vinculos AS v
ON p.las_plano_id =
(SELECT v.las_plano_id
FROM isw_planos_vinculos
WHERE v.data_encerramento IS N
我被告知(并同意)最好替换现有querydef中的SQL,而不是每次查询需要更改时删除并重新定义querydef。但我的代码似乎只能以第二种方式工作。下面是我的代码,它可以工作:
Dim db As Database
Set db = CurrentDb
Dim QD As QueryDef
Dim mySql As String
mySql = ""
mySql = "TRANSFORM COUNT(tblDocs.Document) AS CountOfDocument " & _
"SELECT tblDocs.[
我有一个使用InnoDB的关系型InnoDB数据库,它将课程与课程参与者连接起来。此数据库的问题是course_attendees中的course_attendees列没有设置为外键。在course_attendees表试图引用的地方缺少了很多课程。
我想删除那些记录,因为课程已经不属于了。我编写了这个select查询,它选择了应该删除的所有课程:
SELECT
ca.`id`
FROM `course_attendees` AS ca
LEFT JOIN `courses` c
ON ca.`course_id` = c.`id`
WHERE c.`id`
这个查询有什么问题吗?
SELECT
null,
DISTINCT(email),
2,
SUBSTRING(MD5(RAND()) FROM 1 FOR 32)
from users where sex = 'male'
您的SQL语法出现错误;请检查与您的MySQL服务器版本对应的手册,以获得使用“DISTINCT”(电子邮件)的正确语法。
我试图使用QueryInterface在Typo3中添加订单,但我不知道如何将mysql查询转换为Typo3查询。
下面是我的mysql查询:
SELECT * FROM `primary_table` pt
ORDER BY (
IFNULL(
(select SUM(a.score) from child_table_1 a
left join child_table_1_mm b on a.uid = b.uid_foreign
where b.uid_local = pt.uid and a.uid = 3), 0) +
IFNULL(
(select SU
我正在MYSQL中尝试执行这个查询。
SELECT FirstName,LastName
CONCAT(COALESCE(Address1, ''),
COALESCE(Address2, '')) AS Address2,
(SELECT GROUP_CONCAT(EmpDept ' ') FROM EMP_DEPT
USE INDEX (EMP_DEPT_IDX)
WHERE EMP_DEPT.EMP_ID = EMP.EMP_ID) AS DEPT,
COUNT(PIN) AS PIN,
我有一个包含产品描述的表,每个产品描述都有一个product_id和一个language_id。我想要做的是用language_id of 2更新所有字段,使其等于language_id为1的同一个product_id。
到目前为止,我已经尝试了以下查询,但是我得到了一些错误,表明MySQL不想在子查询中也使用表来更新表。
UPDATE
products_description AS pd
SET
pd.products_seo = (
SELECT
pd2.products_seo
FROM
products_description AS