我想知道为什么像select * as t这样的语句出现在MySQL子查询中,如下所示。
下面的代码根据created_time列删除表中最旧的3行。
为什么这是对的?
DELETE FROM mytable WHERE id = ANY
( SELECT * FROM ( SELECT id FROM mytable ORDER BY created_time ASC LIMIT 3')as t)
而不是
DELETE FROM mytable WHERE id = ANY
(SELECT id FROM mytable ORDER BY created_time ASC LIM
我正在分析一条SQL语句,在别名方面,我并不十分清楚,所以我想问一下,是否有人可以尝试解释它。所以,这个语句就是这样的
SELECT
a.RecordID
, a.Account
, b.RecordID
, c.SomeField as AlternativeFieldName
FROM TableA a
LEFT JOIN TableB b
ON a.RecordID=b.RecordID
LEFT JOIN TableC c
ON b.RecordID=c.RecordID
WHERE a.DayFrom >= YYYYMMDD a
我是MySQL的新手,对它的语法仍然有问题。我有这样的疑问:
SELECT a, b, c, d, e
FROM table1
WHERE status = 'skipped'
AND batchid IN (SELECT batchid
FROM (SELECT distinct batchid, date_format(uploaddate, '%Y-%m-%d')
FROM table1
WHERE uploaddate >
我正在mysql中尝试使用子查询,并遇到了以下语句,在这些语句中我们可以在不同的地方使用子查询。
select Salary from Employee where (select max(Salary) from Employee) < 400;
select Salary from Employee where Salary < (select max(Salary) from Employee);
select Salary from (select * from Employee) as seq1 where Salary < 400;
现在,我感到困惑的是,在哪里我
我有一个关于在MySQL工作台中创建视图的询问。我在保存时出现错误:“View的SELECT在FROM子句中包含子查询”。
这是我声明的副本:
CREATE VIEW viewMorningReport AS
select z.AllocationDate, z.LocationName, z.StationName, a.00000100, b.01000200, c.02000300 from
(SELECT DISTINCT AllocationDate, LocationName, StationName FROM satsschema.employeeslot
where Loc
我有Mysql(mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1),我编写了这样一个查询:
SELECT
(SELECT count(*)
FROM items
WHERE items.shop_id = shops.id),
(SELECT sum(click)
FROM items
WHERE items.shop_id = shops.id),
(SELECT sum(view)
FROM items
WHERE items.shop_
下面是返回子查询的MySQL代码。我希望子查询只返回一行。
SELECT DISTINCT w.cname
FROM works w
WHERE
(SELECT DISTINCT w.cname, AVG(w.salary)
FROM works w
WHERE 1
GROUP BY w.cname
)
<
(SELECT DISTINCT w.cname,AVG(w.salary)
FROM works w
WHERE 1
GROUP BY w.cname
)
MySQL错误说:
1242 -子查询返回多于1行
我的表是emp_id(主键)、名称、性别(M或F)列的employee。我只想将我的第一行性别从M更新到F。我使用了以下代码:
UPDATE employee
SET sex = 'F'
WHERE emp_id =(SELECT emp_id FROM employee WHERE sex = 'M' ORDER BY emp_id LIMIT 1);
我收到的错误如下:
在Mysql的Popsql UI中,“您不能为update子句指定目标表'employee‘”。
我的route表中有四个字段
busid, routid, position and distance
我想让busid and distance from a select query看看。我的选择查询如下:
$endb = mysql_query("select case when a.position < b.position then a.busid when a.position > b.position then a.busid else null end as busid, a.distance as distance from (select busid,p
这可能是两个问题。使用mysql/mariadb。我正在尝试查找某个字段的重复项。
SELECT field1, COUNT(*) c FROM table1 WHERE c > 1 GROUP BY field1;
Error Code: 1054. Unknown column 'c' in 'where clause'
如果我将别名放在引号中,它可以工作,但找不到重复项:
SELECT field1, COUNT(*) 'c' FROM table1 WHERE 'c' > 1 GROUP BY field1;
我是一个MySQL新手,一直在尝试创建一个存储过程。下面的代码返回错误Error Code: 1172. Result consisted of more than one row。我做错了什么?(我正在使用MySQL工作台)
CREATE DEFINER=`root`@`localhost` PROCEDURE `season_private_league_user`(
IN user_id INT,
OUT league_name VARCHAR(25),
OUT host_user VARCHAR(30))
BEGIN
DECLARE userteamid INT;
D
mysql中是否有一个JSON函数,如果元素已经存在,它会忽略添加元素吗?例如:
update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', "orange")
where id=2;
update waitinglist SET
new = JSON_ARRAY_APPEND(new, '$', "orange")
where id=2;
现在,我的数组看起来如下:
["apple", "orange", "orange",
我正在使用sqlite在离子2,以获取数据从聊天台,但它一直给我的错误在联合。以下是我的疑问:
SELECT a.id, a.timeDate, a.message, fromUser, toUser FROM ((SELECT id, message, fromUser, toUser, toUser AS uid, timeDate FROM chat WHERE fromUser = ?) UNION (SELECT id, message, fromUser, toUser, fromUser AS uid, timeDate FROM chat WHERE toUser = ? ))
尝试使用"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更新语法似乎不起作用。对更新语法的子查询有限制吗?
不管用:
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';
当我试图运行一个存储过程时,我会得到这个错误。
mysql> call get_nearby;
错误1054 (42S22):'where子句‘中未知列'longRadius’
下面是创建存储过程的sql:
CREATE PROCEDURE get_nearby() BEGIN SET @lat = 10; set @long = 12;
SELECT id,
@long - radius / abs(cos(radians(@lat)) * 69) as longRadius,
(radius/69) as latRadius
FROM area
W
我试图从使用MySQL数据库的地址簿中删除一个联系人,我认为这是这样做的,但是会抛出一个异常并打印“where子句”中的“未知列'john‘”。每个联系人都有5个属性-名称、移动电话、家庭电话、电子邮件和地址,联系人名称之一是“john”。
public static void deleteContact(String name)
{
Connection con = connect();// function that returns mySQL function
Statement s = con.createStatement();
try{
我希望在where子句中获取和使用从子选择返回的MySQL中的值。这个是可能的吗?似乎没有必要写出两次子查询-然而,如果我需要的话,MySQL会聪明到只运行一次吗?
我已经尝试了以下不起作用的方法:
SELECT
(SELECT 1 FROM table WHERE somereallycomplicatedclause = 'something')
AS subselectresult
FROM content WHERE subselectresult = 1
这将生成以下错误:
#1054 - Unknown column 'subselect
我发现很难学习如何在MySQL中制定子查询
例如,这段代码似乎不起作用。
SHOW COLUMNS FROM $table WHERE Field NOT IN (
SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = $table
AND column_name LIKE 'project_images_%'
);
有人有什么建议吗?或者是子查询的好资源?
假设我们有一个表vv和一个表r。
我们运行下面的查询来模拟一个集合除法。
我理解这个查询像嵌套的for-循环一样运行。
问题是:在最深的嵌套查询中,如何在表的构造尚未完成的情况下使用表vv1?
我认为'select‘子句是最后一个要计算的子句,那么mysql如何知道在完成where子句之前,vv1有不同的值(或者它有哪些值),但是要完成where子句,它必须先完成它?
SELECT DISTINCT vv1.y
FROM vv AS vv1
WHERE NOT EXISTS (SELECT r.A
FROM r
我正在执行这个查询
$sql=mysql_query("SELECT c.*,
(SELECT Count(b.text) From tbl_people_comment Where b.idsms=c.id AND b.visible=1) AS ccomment
FROM tbl_peoplesms AS c
INNER JOIN tbl_people_comment AS b ON b.idsms= c.id
WHERE c.visible=1
GROUP BY c.id");
我试图让它在php中返回类似的内容
[
{
"id
我有一个Oracle语句,我需要移植到MySQL。
以下是声明:
DELETE from Student
WHERE DEPTID = '90'
and LOADDT < (Select max(LOADDT) From Student WHERE DEPTID ='90');
这在MySQL中不起作用,而且出错了,
Error Code: 1093. You can't specify target table 'STUDENT' for update in FROM clause
我如何将它移植到MySQL?
下面的查询应该返回多行多列数据库中的数据,而不需要使用mysql中的过程。
我的代码:
SELECT CASE WHEN @country_count < 8 THEN
(SELECT * FROM country where country_id =1)
ELSE
(SELECT * FROM country where country_id > 1)
END;
在一个查询中可以这样做吗?例如,我有一个名为log的表,其中包含以下列: id、epoch、username、msg。
我需要搜索来自某个用户的消息,如下所示:
select * from logs where username = 'bob'
现在,我希望在一定的时间范围内从该消息中选择来自bob的所有消息。
我知道在PHP中使用for循环可以很容易地做到这一点,但是我必须使用mySQL。
我原本想做这样的事情:
select * from logs where FROM_UNIXTIME(epoch) between
(select FROM_UNIXTIME(epoch)
我有一个关于mysql转换为Laravel的问题
下面是mysql上的代码
SELECT raceseriesmap.rs_id,raceseriesmap.m_id,raceseriesmap.rsm_mo , raceseriesmap.rsm_extra, mapdata.m_name, mapdata.m_photoname,
(SELECT count(carinraceseries.crs_id) from carinraceseries WHERE carinraceseries.rs_id = raceseriesmap.rs_id) as c_count from r
我正试图将我的应用程序从MS SQL Server迁移到MySQL,但我在子查询中遇到了MySQL的LIMIT子句的问题。
SQL Server代码:
select F.call_Id, F.cell_Phone_Number, F.cal_DATE
From TD_Call_Log AS F
Where F.call_Id IN ( Select Top 5 S.call_Id
From TD_Call_Log AS S
where S.cell_Phone_Number = F.cell_Phone_N
当我解决这个问题时,编写一个SQL查询来从Employee表中获得第n个最高工资。 我在下面看到了一个解决方案: CREATE FUNCTION getNthHighestSalary(N INT)
RETURNS INT
BEGIN
RETURN (
# Write your MySQL query statement below.
SELECT e1.Salary
FROM (SELECT DISTINCT Salary FROM Employee) e1
WHERE (SELECT
我有一个非常简单的MySQL查询
select clients.id as selected_id,(select clients.id
from clients where clients.id=selected_id)
from clients where clients.id=20
当我在MySQL上运行它时,它运行得很好。但是在Sqlite3上,相同的查询会引发
错误:没有这样的列: selected_id
我试过在谷歌上搜索,但大多数解决方案都是w.r.t。加入。在这里,我需要它的选择部分。
我想插入4个数据到4个字段,并检查其中是否有2个不存在。(数据匹配` `pid = '1‘和sid '123')
这是我的代码,我检查了几次,我的mysql connect很好,我的数据库是正确的,这四个字段在我的table中。但我就是不能插入。没有警告返回页面。
require ("connect.php");// this one I always test on my localhost, no proble, even require on other page, all works well
mysql_select_db("test&
我在SQL查询中使用了一个简单的(如果不存在)/WHERE语句(我尝试了这两种语句),而且我总是得到一个mysql错误,不知道为什么。尝试使用不同的引号,检查我的MySQL服务器版本等。
这些是我所用的陈述
IF NOT EXISTS (SELECT * FROM kurs_users WHERE kurs_users.uid = 'someuser')
BEGIN
INSERT INTO kurs_users(uid) VALUES ('someuser')
END
和
INSERT INTO kurs_users
VALUES ('
我有一些SQL (为了可读性从实体框架中删减),它可以在SQL Server中工作,但不能在MySQL中工作。我假设这意味着我已经达到了MySQL的限制,但我不能确定。
我有3张桌子:
具有ProductId和AccommodationId的产品
使用AccommodationId的住宿
带RoomId的房间
SELECT *
FROM (SELECT * FROM products) AS Project1
WHERE EXISTS(
SELECT *
FROM rooms
LEFT OUTER JOIN
(SELECT * FROM accommodations AS
mysql子查询中的结果顺序是否影响实际查询的顺序?我试过了,但没有取得真正的结果,因为有时看起来是这样,有时却没有。
例:
SELECT name FROM people WHERE pid IN (SELECT mid FROM member ORDER BY mdate)
在这种情况下,"order“-clause会影响结果的顺序吗?
谢谢。
我不是SQL专家,在MySQL中简单地将特定的日期时间值替换为NULL会遇到问题。由于从不具有该日期的last_login DATETIME电子表格中填充行(即,空单元格),所讨论的可为空的Excel列可能具有值'1900-01-01 00:00:00.000‘。每个数据库行都由一个id INT列唯一标识。我试过了:
UPDATE user_profiles
SET last_login = NULL
WHERE id IN
(SELECT id FROM user_profiles WHERE last_login = '1900-01-01 00:00:00.000'
每次运行php脚本时,我都希望通过id删除旧条目。但是MySQL抛出了这个错误:
#1111 - Invalid use of group function
这是一个查询:
DELETE FROM am_shoutbox WHERE MAX(msg_id)-160 > msg_id
这里有什么问题?我尝试并解决了它,首先选择最高的id到php,然后用第二个查询删除,但为了更好的性能,我想这样做,如果可能的话。
我希望有人能找出上面的问题出了什么问题。
在sqlalchemy查询方面我需要一些帮助。我很难在sqlalchemy中实现这个mysql查询。
MySQL查询:
select u.post_id
from
user_record_cards u
where
u.record_card_id = 1 and u.count = 1
order by (select
count(*)
from
post_likes p
where
p.post = u.post_id)
我的sqlalchemy查询是:
obj = (
UserRecordCard.
我在MySQL查询中遇到语法错误。MySQL和SQL server的工作方式不同吗?谁能建议,哪里出了问题,在哪里?
select b.component, d.matter, d.bug, d.timestamp, d.os
from bugs.profiles p, ops_reports.BPR_TAG_DATA d
left join (Select * from bugs where product='test') b
on d.bug=b.bug_id
where d.tagid = 6
and timestamp between "2014-04-2