【mysql – 在三个不同的列上使用MAX,WHERE和GROUP BY提高SQL查询的速度】教程文章相关的互联网学习教程文章

php-在MySQL中使用where子句添加时差【代码】

我有一个包含成百上千行的数据表,这些表代表对服务器获取数据的请求.每条记录都有一个时间戳,服务器ID和服务器是否正确响应的二进制值(tinyint).查询时间不是恒定的. 我试图通过累加服务器在线的查询之间的时间(非常可取的mysql查询)来获得服务器被视为“在线”的总时间.例如.server | time | status 1 | 1/1/2012 11:00 online 1 | 1/1/2012 11:02 online 1 | 1/1/2012 11:05 offline 2 | 1/1/2012 11:10 online 1 | 1/1/2012 11:...

当WHERE条件不成立时,MySql Select查询返回record【代码】

即使条件不满足,MySQL查询也会返回一条记录.SELECT * FROM `orders` WHERE order_id = '10000R'没有与此处给出的WHERE条件相匹配的记录.但是MySQl返回order_id = 10000的记录 看起来好像WHERE条件忽略了引号内的alpha.如果查询中有任何错误或这是MySql错误,请帮助我解决方法:我假设order_id是一个int,并且MySql隐式地将varchar’10000R’强制转换为匹配列的数据类型,从而去除了尾随的’r’. 请参阅MySql文档中的“ Type Conversion...

优化where语句MYSQL【代码】

我正在编写这个复杂的查询以返回一个大数据集,大约有100,000条记录.查询运行良好,直到我将此OR语句添加到WHERE子句中:AND (responses.StrategyFk = strategies.Id Or responses.StrategyFk ISNull)现在我了解到,通过在其中放置or语句会增加很多开销. 没有该声明,只是:AND responses.StrategyFk = strategies.Id该查询将在15秒内运行,但不会返回没有fk链接策略的任何记录. 虽然我也希望这些记录.有没有更简单的方法通过简单的wher...

如果在where子句中是唯一索引列,mysql在找到第一个结果后会做什么?【代码】

SELECT id FROM mytable WHERE login = 'Jhon' AND password = '123'列登录具有唯一索引,未索引密码. 找到第一个结果后,mysql是否会停止执行?解决方法: SELECT id FROM mytable WHERE login = 'Jhon' AND password = '123'很好,因为您要过滤的是唯一约束/索引,所以不需要限制. 顺便说一句,不要在数据库中存储纯文本密码. 如果登录名是唯一索引,则查询将在找到“ Jhon”后停止搜索索引b树.因为您有两个条件,登录名和密码,您可能希望...

mysql-where子句中含限定符的歧义列【代码】

我收到以下错误:ERROR 1052 (23000) at line 1: Column 'id' in where clause is ambiguous数据库:MySQL 5.5.30(架构中的所有表和列)SELECT cam.id, cam.name AS campaign_name, cam.subdomain, usr.id AS user_id, usr.email, usr.display_name AS user_display_name FROM campaigns AS cam INNER JOIN users AS usr ON usr.id = cam.user_id WHERE cam.state=2 AND (usr.email = "hello@me.com")AND cam.id IN (105793,1072...

mysql-使用where子句中的OR优化sql语句【代码】

在5Gb大小的消息表上运行此查询.问题在于执行需要> 3分钟.SELECT m.id FROM messages m LEFT JOIN dialog d on m.id=d.mid WHERE (SELECT count(*) FROM dialog WHERE (m.from_id=uid1 and m.user_id=uid2) OR (m.from_id=uid2 and m.user_id=uid1))=0 && read_state=0 LIMIT 100 我知道,这是通过“嵌套的SELECT”在哪里进行搜索的一种不好的做法,但是并没有找到选择这种行的另一种方法.试图将OR拆分为2个U...

日期范围在WHERE中的ORDER BY的MySQL索引【代码】

假设您有一个包含以下列的表格:id date col1我希望能够使用特定的ID和日期查询该表,并通过另一列进行排序.例如,SELECT * FROM TABLE WHERE id = ? AND date > ? ORDER BY col1 DESC根据this范围文档,索引在达到>后将停止使用.运算符.但是根据this order by文档,如果索引按索引中的最后一列进行排序,则该索引只能用于优化order by子句.是否有可能在此查询的每个部分上获取索引查找,还是只能获取3个中的2个?我能做些比索引(ID,日期...

mysql-where子句后的两个条件【代码】

我有查询不起作用$lokesh = "select * from license_info where mac_id='$mac_id' and admin_user_name='$admin'";在上面的查询中,我选择macid和admin_user_name匹配的记录 但是当我回显此sql查询时,它显示输出select * from license_info where mac_id='0800279020F2' and admin_user_name='sanjay '最后单引号打印在下面的行中,所以我无法检索记录.在下面的行中打印单引号的原因是什么解决方法:原因是您的变量$admin最后包含换行...

mySQL:如何在WHERE IN子句中删除【代码】

这个问题已经在这里有了答案: > MySQL Error 1093 – Can’t specify target table for update in FROM clause 14个我有这个查询SELECT a.album_id parent, a2.album_id child FROM album a LEFT JOIN album a2 ON a2.parent_album_id = a.album_id WHERE a.album_id = 76基本上,它返回父级和子级值,如下所示:parent child -------------------- 76 64 ...

MySQL如何用where子句只计算左连接数?【代码】

我有两个表:ritter(ritterId,ritterName)和quest(questID,ritterID,datum). 现在我的问题是,我如何用一个额外的列显示所有来自Ritter的信息,该列显示了当前周Ritter的任务计数? 我尝试了这个:select r.*, count(q.ritterID) from ritter as r left join quest as q on r.ritterID = q.ritterID group by r.ritterID;这有效,但没有当前星期的原因. 如果我这样做:选择r.*,将ritter中的count(q.ritterID)作为r左加入任务,作为r.ri...

mysql-在GROUP_CONCAT中选择WHERE ID【代码】

如何将WHERE或HAVING子句与GROUP_CONCAT结合使用,以使返回的数据包括GROUP_CONCAT中包含ID的项目的任意组合,而不仅仅是ID的单个匹配项.SELECT p.id, p.title, GROUP_CONCAT(a.author_id) as 'aus' FROM publications p INNER JOIN authors aON p.publication_id = a.publication_id WHERE a.author_id = 2 GROUP BY p.id,p.title会回来id title aus 1 A 1,2,3 2 B 1,2 3 C 2 4 D ...

PHP-CI MySQL查询联接表,并且where语句不返回所有行【代码】

我有3个表要联接,但是当我在第三个表上使用where语句,而第三个表没有它时,即使我使用的是left,它也不会返回第一和第二个表中的行加入.Table 1 +---------+--------------+----------+ | acc_PID | acc_name | acc_type | +---------+--------------+----------+ | 1 | Account 1 | 1 | | 2 | Account 2 | 1 | | 3 | Account 3 | 2 | | 4 | Account 4 | 1 | +...

mysql-所有联接末尾的“ where”子句【代码】

假设我有如下2条sql查询,查询结果是否会有所不同?SELECT * FROM A INNER JOIN B ON A.ID = B.ID WHERE B.IsActive = 1 INNER JOIN C ON B.ID = C.ID WHERE C.IsActive = 1SELECT * FROM A INNER JOIN B ON A.ID = B.ID INNER JOIN C ON B.ID = C.ID WHERE B.IsActive = 1 AND C.IsActive = 1解决方法:您的第一个查询在语法上不正确.它需要重写:SELECT * FROM A INNER JOIN B ON A.ID = B.ID WHERE B.IsActive = 1 INNER JOIN C O...

MySQL:where子句 使用正则表达式【图】

where子句使用正则表达式用关键字REGEXP 1、匹配基本字符 eg1: select prod_name from products where prod_name regexp 1000;看上去很像like语句的作用,但是like 1000可不会返回上面的结果,like %1000才可以。 like匹配的是整个列,regexp匹配列值内的文本。 eg2: select prod_name from products where prod_name regexp .000;正则表达式中的.可以匹配任一字符。 2、OR匹配 |实现 eg: select prod_name from products where ...

WHERE columnName =问题在C#中的MySQL查询中【代码】

我在要使用PHP的Linux服务器上与Windows Server交互的Windows Server上具有C#Web服务. PHP从数据库中获取信息,然后页面上提供了一个“更多信息”按钮,该按钮随后调用Web服务并将记录的名称字段作为参数传递.所以我在查询中使用了WHERE语句,所以我只提取该记录的额外字段.我收到错误消息:System.Data.SqlClient.SqlException:Invalid column name ’42’其中42是数据库名称字段中的值. 我的查询是string selectStr = "SELECT name,...