草庐IT

db_select

全部标签

带有来自 mysql db 的重音的 Php utf8 文本正则表达式出错

我的MySQL(所有utf8)数据库中有一些带有重音符号的数据。就像“7hà18H”(法语,意思是早上7点到下午6点)。在我的php脚本中,我将mysql连接编码设置为utf8,当我在那里收集文本“7Hà18H”时,重音符号在CLI中正确显示(因为我在CLI中运行脚本)。然后在我尝试解析表达式之后preg_match("#[0-9]+H[Àà][0-9]+H#i",$text);但正则表达式不匹配。我不明白为什么然后我尝试了这个表达式preg_match("#[0-9]+H[Àà]#i",$text,$matches)它奏效了,但匹配是:array(1){[0]=>string(4)"

mysql - 为什么 MySQL 允许 SELECT 查询中的非精确匹配?

这是故事。我正在测试对使用MySQL数据库作为数据主要存储的Laravel(PHP框架)应用程序进行一些安全测试(使用zaproxy)。Zaproxy正在报告可能对具有以下有效负载的POST请求URL进行SQL注入(inject):id[]=3-2&enabled[]=on基本上,这是一个AJAX请求,用于打开/关闭列表中的特定功能。Zaproxy正在对请求进行模糊测试:id值为3-2时,应该有一个整数-要更新的项目的id。问题是这个请求是有效的。它应该会失败,但代码实际上正在更新id=3的项目。我按照我应该的方式做事:使用Eloquent的Model::find($id)方法检索模型

mysql - 带有 if 语句的 SELECT 查询?

我在PHP脚本中有一个包含以下示例信息的表格:CustidNameTypeDate1RoyA201507151Roy-C201507152BartB20150715在我的SELECT查询中,我只想获取具有type=A和type=B的客户,但如果type=-C那么我想从查询中删除A或B。 最佳答案 如果您需要为在任何行上没有类型“-C”的客户选择所有记录,那么您首先需要找到要排除的客户。这可以通过以下查询完成:SELECTCustidFROMyourtableWHERE`type`='-C';现在您应该能够找到所有其他客户:SELEC

MySql,SELECT * FROM 带索引列

我正在使用MySql中的一个表,它有一个名为“serial”的int索引列。该表有大约200万行。如果我以这种方式对该列应用select语句:SELECTserialFROMTableWHERESerial=12345这会在大约但是,如果我在同一个表中使用SELECT*查询,则此查询需要大约78秒...我知道将索引应用于表中的所有列没有用,如果我需要从特定序列中获取所有列,我该如何优化/最小化查询响应时间?SELECT*FROMTableWHEREserial=12345EXPLAIN的结果:选择序列号:1SIMPLEtableNameindexidx_tablename_serial

MySQL 日期范围多列计数和 Group By Select 语句

我有一个查询我已经研究了一段时间,但我似乎无法把它记下来。此处的其他答案适用于计算特定日期范围内的金额,然后按日期分组以获得计数。但是,我需要计算两列并按日期分组。例如,这是我试图开始工作的查询:(SELECTCOUNT(*)arrived,DATE(arrived)date,'arrived'ASsourceFROMproductsWHEREarrivedBETWEEN'2016-01-01'AND'2016-01-31'GROUPBYDATE(date)ORDERBYdateASC)UNIONALL(SELECTCOUNT(*)released,DATE(released)date

mysql select count distinct row 数量

是否可以计算MySQL中具有特定值的5行或更多行的行数?它与distinct完全相同,但会忽略少于5行的值此外,如果它确实找到了超过5行的值,我只希望它算作1。如果不清楚或不够清楚,请告诉我Table:ID1001100110011001100110021002100310031003100310031004我希望此表计算具有5行或更多行的唯一ID的数量。所以我希望它返回2更新:$var=5;try{$results=$db->prepare("SELECTCOUNT(*)asTotalFROM(SELECTuser_idasYourCountFROMcard_statsGROUPBY

c# - linq2db 更新找不到 .Set 方法 MySQL 的定义

我正在我的项目中实现linq2db,目前我正在尝试执行更新,但我被困在这个问题上。现在我可以看到类中没有可用的扩展方法,但是在github上的演示和源代码中我似乎找不到与我正在做的有什么不同。所以不确定该怎么做。错误:表格: 最佳答案 确保您在类顶部有usingLinqToDB;。此语法有效:两个lambda一个用于属性选择器,第二个用于值。db.Product.Where(x=>x.ProductID==1).Set(x=>x.Name,x=>"ABC");使用此方法,您将很难使用IntelliSense,除非您正确设置两个空的l

php - SQL SELECT 仅具有来自两个不同表的列的 MAX 值的行

我的两张table设置如下:表1+------+---------+--------------------------------------+|id|tail|content|+------+---------+--------------------------------------+|1|abc|...||2|def|...||3|ghi|...||4|def|...||5|jkl|...|+------+-------+----------------------------------------+表2+------+--------+------------------

mysql - GROUPing 时,mariaDB 是否不支持 SELECT 语句中的函数依赖?

我的SQL语句中的GROUPBY有一些问题。我正在使用mariaDB10.1.17并注意到在执行如下SQL语句时出现错误:SELECT`pubs`.`ID`AS`ID`,AVG(`reviews`.`atmosphere`)AS`average`,`pubs`.`name`AS`name`,`pubs`.`country`AS`country`FROM`pubs`LEFTJOIN`reviews`ON`pubs`.`ID`=`reviews`.`pub_ID`GROUPBY`pubs`.`ID`ORDERBY`average`DESC,`reviews`.`date`DESC我得到的错

mysql - 是否可以反转 SQL 中的 select 语句?

当我想选择除foo和bar之外的所有列时,我通常做的只是在select语句中明确列出所有其他列。从...中选择a、b、c、d、...但是如果表格有十几个列,这对于简单的方法来说是一个繁琐的过程。相反,我想做的是类似于以下伪语句:select*except(foo,bar)from...我还想知道,如果有一个函数可以从多个列组成的结果中过滤出行,如果多个行在所有对应的内容相同列。换句话说,重复的行将被过滤掉。------------------------A|B|C------------------------====>------------------------A|B|CA|B|