我正在从perl插入到mysql数据库中。在第一次插入后,我得到了一个重复的错误。下面是我用于插入的代码。我正在从json响应中提取一个id。我在下面的代码中输出了我正在接收的内容
foreach my $listing(@{$json_text->{listings}})
{
my $id = $listing->{id};
print "\nid = $id \n";
# DO THE INSERT
my $query_insert = "INSERT INTO calendar (id) VALUES
我有两个问题:
SELECT id, max(index) from table;
和
SELECT id, index from table where index=(select max(index) from table);
这两者有什么区别吗?
我在MySQL查询浏览器中运行了代码,发现结果是相同的。但我只是觉得应该有区别。如果有差异,想附加一个简单的场景吗?
index 编辑: is not unique.
mysql :您可能会说我的第一个查询缺少了group by**;,但是它实际上正在运行。我只想知道两者之间的区别,而不是与** group by 的第一个查询和第二个查询之间的
我的MySQL查询如下:
select * from messages
where id in (select max(id) from messages group by Name)
为什么此查询不起作用?:
select * from messages
where id in (select max(id) from messages where field <> 'value' group by Name)
我有以下代码,执行一个非常简单的MySQL查询:
$netnestquery = 'SELECT (`nested`+1) AS `nest` FROM `ipspace6` WHERE `id`<='.$adaddr.' AND `subnet`<='.$postmask.' AND `type`="net" AND `addr` NOT IN(SELECT `id` FROM `ipspace6` WHERE `addr`<'.$adaddr.' AND `type`="broadcast
是否可以在正在运行的查询中获得已使用的内存?
类似于:
mysql> SELECT MEMORY_PEAK as memory; #return memory usage by mysql before run query
mysql> SELECT id FROM table WHERE id>2; #run query
mysql> SELECT MEMORY_PEAK as memory; #return memory usage by mysql after run query
并返回类似的内容(返回17 and ):
+----------+
| memor
我试图使用简单的InnoDB查询将一行添加到INESRT表中。对于某些值,我得到一个错误,而对于另一些值,则接受查询:
mysql> INSERT INTO pylog (id, description) VALUES ('606_0', 'testing');
ERROR 1114 (HY000): The table 'pylog' is full
mysql> INSERT INTO pylog (id, description) VALUES ('706_0', 'testing');
Que
我有一个表test,列为id、月、年。我需要在一个查询中获取最大月份和最大年数的id。
例如
id month year
1 10 2012
2 9 2013
我的结果应该是id 2。
首先检查基于最大月份的年份,根据这些,我需要获得id
我在MySQL中给出了这样的查询
select id from book where MAX(month) and MAX(year);
其产生误差
我有三个问题:
$data1 = mysql_query("SELECT *
FROM 'table1'
WHERE post_status = 'publish'
AND 'post_title' LIKE '$letter%'
ORDER BY 'post_title' ASC") or die(mysql
我在MySQL表table中有以下数据
ID:int(11)这是主键
Date:日期
然后我运行MySQL查询:
SELECT * from table WHERE Date=CURDATE() and ID=1;
这需要0.6到1.2秒。
有没有办法优化这个查询以更快地获得结果?
我的目标是看看我是否已经有了这个ID的今天的记录。
我在MySQL中的查询使用group_concat将多行中的值转换为单个列。
SELECT
user_id,
group_concat(case when event = 'BORROWED' then book_id end
separator ' ') as borrowed_books
FROM library_events
我遇到的问题是,连接这些值的即席列borrowed_books在1026个字符时就会达到最大值。我还看到列中的字符串在1026个字符后被截断。
如何为即席列设置/增加此值?
我的要求是在max(create_date)之前得到行。
SELECT servicecalls_servicecall_id, max(created_at) FROM
service_followup_details where servicecalls_servicecall_id IN (SELECT
service_call_id from service_calls where status=2) group by
servicecalls_servicecall_id
我如何通过MySQL查询来做到这一点?
我有一张这样的桌子:
id
名字
型( A,B,C)
日期时间
类型的名称每隔X天更改一次。我想要得到姓氏和修改日期与1 MySQL查询。
因此,这个查询:
SELECT name, type, datetime
FROM table WHERE type = A
ORDER BY datetime DESC LIMIT 1
但是,查询必须返回3行,对于每个类型1。我试图用一个联合来完成这个任务,但是这给了我一个关于order语句的错误。我想不出怎么解决这个问题。
有谁可以帮我?
提前谢谢。
编辑:
CREATE TABLE IF NOT EXISTS `table`
我有一个问题,一些性能问题,我们有一些是有点超出我。当我们对大约200万次的评论进行此查询时,大约需要20秒,但似乎两次都应该执行索引。obj_id和id都有索引。这里的主要查询是select * from post吗?db服务器是MySQL 5.7.36。
mysql> explain select * from post where id in
(select max(id) from post
where obj_id IN (1709768, 1816027)
and obj_type="Review"
group by obj_id)
我在一个月前安装了mysql。我每天都在使用,没有任何问题。而现在,我的mysql非常奇怪。我可以登录到mysql,并且总是成功。但是,有时不能运行查询。
下面是unseccessfull查询的示例:
gai@gai-Lenovo-G470 ~ $ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.47-0ubuntu0.14.04.1 (Ubuntu)
Copy
我在这里使用mysql池,并在查询中进行了查询。在运行此命令时,这应该是为了保存数据库中的有罪者ID。不幸的是,出于某种原因,它不允许我运行这段代码。我把错误列在下面。
var mysql = require("mysql");
var pool = mysql.createPool({
connectionLimit : 10,
host : 'localhost',
user : '',
password : '',
database
假设我有一个表定义为:
CREATE TABLE People (
id SERIAL,
name TEXT
);
如果我首先在表中找到最大id,然后运行以下查询:
SELECT (id, name)
FROM People
WHERE id <= [maximum id found before];
我会得到一份人的名单。如果我再次使用相同的最大id运行相同的查询:
我能保证得到同样的结果吗?
或者,第一个查询返回的列表在执行第二个查询之前填入了空白,从而导致第二个查询有更多的行?
假设除了从任意数量的并发连接进行的顺序插入操作之外,没有对数据库进行任何
我有一个mysql DELETE查询,其中where子句使用带有IN的主键:
delete from my_table where id in (4, 900, 700);
我收到了死锁错误。我不明白为什么会这样,也不知道如何避免。虽然其他查询正在从同一个表中选择/删除/添加,但没有为这些ID选择任何其他查询。PK id是特定于单个用户的,因此没有其他人使用这些相同的id。我认为使用主键可以防止delete语句锁定其他行。
编辑:引擎为innoDB
为了只获得带有最新时间戳的数据,我从这个答案中使用mysql查询:
我的查询如下:
SELECT stock_id,timestamp,price FROM market m1
WHERE timestamp =
(SELECT MAX(timestamp) FROM market m2 WHERE m1.stock_id = m2.stock_id)
但执行起来需要10分钟。
优化它的不同选择是什么?(mysql)
市场有以下模式:(sqlalchemy)
class Market(d
我正在尝试使用JDBC执行创建查询。我有一个创建查询的方法,然后执行它,但是它显示了语法错误。下面是堆栈跟踪:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'supplierId varchar,supplierUrl varchar,totalActiviti
我只是被一个简单的mysql查询卡住了,我想要更新表的最大Id的行,我尝试了一些类似的东西,但它不起作用
UPDATE inbox i
INNER JOIN messages m ON i.message_id = m.id
SET i.read = 0
WHERE m.conversation_id = 10
AND i.user_id = 1
ORDER BY i.id DESC
LIMIT 1
我也尝试过子查询,但也不起作用
我需要一些帮助。
谢谢
我正在开发一个需要大量读取mysql表的c#应用程序。该查询如下所示:
SELECT ID3 FROM A INNER JOIN B
USING (ID1)
INNER JOIN C
USING (ID2)
INNER JOIN D
USING (ID3)
WHERE ID3 > @Start AND ID3 <= @End
GROUP BY ID3
HAVING SOME CONDITION
由于这个表很大,我尝试创建20个线程,每个线程都执行一个查询,用来替换
WHERE ID3 > @Start AND ID3 <= @End
使用
WHERE ID3 % 20
我找不到我们的主/从复制问题的来源。
今天我正在更新主人,突然从奴隶那里得到了下面的错误
Error 'The table 'caching_api' is full' on query.
Query: '
ALTER TABLE `caching_api`
ADD UNIQUE INDEX `id` (`id`) USING BTREE ,
ADD INDEX `search` (`component`, `method`) USING BTREE
这不是磁盘问题,奴隶是主的精确复制
和my.cnf配置:
[mysql
在MySQL query中,我想从每个用户类型中查询最近登录1的用户信息列表。
表信息: user表具有列: user_id、usertype_id、last_login_date用户类型表具有列: usertype_id、user_id
我试过了,
SELECT MAX(u.last_login_date), u.user_id FROM `user` u
JOIN usertype ut ON u.usertye_id = ut.usertype_id
GROUP BY ut.usertype_id;
但无论user_id如何,上面的查询都会返回'last_login_date‘。
这是一个从未完成的查询:
SELECT modelId, `timestamp` FROM thread_view WHERE id IN
(SELECT max(id) FROM thread_view
WHERE viewerId = 1 AND modelType = 'LEASE' AND modelId IN
(15,615,618,660) GROUP BY modelId);
当我只运行子查询时,它在12 ids内完成并返回两个I。当我硬编码这2个I代替子查询时,外部查询返回两行并在0.3ms内完成。
正如您所看到的,查询的两个部分运行得非常快