【MYSQL变量IN子句】教程文章相关的互联网学习教程文章

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

mysql-左/右外部联接是否需要On子句【代码】

我在MYSQL中有以下非常简单的左外部联接:select * from employee left join department但是,这给了我毫无意义的错误信息Error Code: 1064. 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 ” at line 1但是,如果我仅添加如下所示的ON子句,则查询有效:select * from employee left join department on employee.departmentId = depa...

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...

不能在MySQL函数中使用别名作为ORDER BY子句的一部分【代码】

如果我执行以下查询,则工作正常.SELECT CASE WHEN description LIKE '%a%' THEN 'A'WHEN description LIKE '%b%' THEN 'B'ELSE 'C'END AS foo ,COUNT(*) AS cnt FROM product p GROUP BY foo ORDER BY foo;结果是像foo | cnt ----------- A | 809 B | 29 C | 55但是,以下查询给出了错误.请注意,我只更改了最后一行.SELECT CASE WHEN description LIKE '%a%' THEN 'A'WHEN description LIKE '%b%' THEN 'B'ELSE '...

没有GROUP BY子句的MySQL聚合函数

在MySQL中,我观察到尽管没有GROUP BY子句,但在SELECT列表中使用AGGREGATE FUNCTION的语句被执行了.如果这样做,其他RDBMS产品(例如SQL Server)将引发错误. 例如,从tbl1 SELECT col1,col2,sum(col3);得到执行而没有任何错误,并返回col1,col2的第一行值和col3的所有值之和.以上查询的结果是一行. 谁能告诉我为什么MySQL会发生这种情况? 提前致谢!!解决方法:这是设计使然-它是MySQL允许的标准的许多扩展之一. 对于诸如SELECT名称之类...

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最后包含换行...

PHP-MYSQL-具有多个IN子句的PDO【代码】

我可以使用以下代码在PDO准备好的语句中成功实现IN子句.in_array = array(1,2,3); $in = str_repeat('?,', count($in_array) - 1) . '?'; $sql = "SELECT * FROM my_table WHERE my_value IN ($in)"; $stm = $db->prepare($sql); $stm->execute($in_array); $data = $stm->fetchAll();如何为多个$in做同样的事情?例如,我尝试以下操作失败:in_array1 = array(1,2,3); $in1 = str_repeat('?,', count($in_array) - 1) . '?'; in_...

mysql-左联接on子句中的“ AND 1” /“ AND 0”做什么【代码】

这是相关问题的摘要LEFT join tbl_ExpenseReportLineItem erli ON erh.ExpenseReportHeaderID = erli.ExpenseReportHeaderID and 1根据显示的是“和1”还是“和0”,我看到了不同的结果.如果需要,我可以提供更多代码段,但我希望它有一个简单的通用答案. 编辑:答案极大地帮助了,但是我的sql的实际问题是该group by返回了我不想要的行. (已删除sql,因为与工作相关).解决方法:1和0在MySQL中是TRUE和FALSE的同义词.因此,以下条件相同:...

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-所有联接末尾的“ 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-错误代码:1093.您无法在FROM子句中指定目标表“ PR_1”进行更新【代码】

我正在尝试进行更新:UPDATE PR PR1 SET PR_KEY = 1 WHERE NOT EXISTS (SELECT 1FROM PR PR2 WHERE PR2.a = PR1.a ABD PR2.b = PR1.b );但是我得到这个错误:Error Code: 1093. You can’t specify target table ‘PR1’ for update in FROM clause.大多数解决方案似乎都集中在执行子查询上,但不确定如何在此处应用它,或者也许只有一种更好的方式来获取我想要的东西.解决方法:使用联接而不是子查询UPDATE PR PR1 LEFT JOIN PR PR2...

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 ...