问题标签 [find-in-set]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 我想在 mysql 数据库中获取逗号分隔的记录
在我的数据库表中,我有 6 列 id(auto)、title、news、image、type 我写了这个查询。
我收到此错误
php - 从数据库中删除行的某些部分(一组数据库行中的值)
我想在 mysql 中删除我的行的一部分。像这样:
我的行:1,2,3,4
我想做:1,2,3
我怎样才能做到这一点?
我知道可以用这段代码来完成,但有更好的方法吗?
UPDATE Table SET message = REPLACE(message, ",4", "") WHERE id = 1;
mysql - MySQL:创建逗号分隔列表并在 IN 中使用
我的功能代码如下。
在此我使用两个 select 语句创建 id 列表并应用到 IN 列表中。它给了我空结果。如果我 CAST 像 CONCAT(GROUP_CONCAT(id), CAST(ids as char) ) 这样的 ID,那么它会给我第一行结果。
mysql - 用逗号选择查询并加入
我有 tbl A 和 tbl B 如下,我想得到他们的名字,用逗号分隔,但我没有得到我正在寻找的格式。
http://sqlfiddle.com/#!2/149093/10
User: 1,2,3 ;2 - 我也应该得到名字 A,B,C 然后是 B 但我只得到 A 和 B。我应该如何得到他们在列用户中的个人姓名并且也满足条件至少存在 2 个。在此先感谢。
预期输出为:
整行 A
整行 B
整行 C
整行 A
基本上是 4 行,因为他们的名字总共有 4 个用户。
mysql - MySQL:无法从特定分区中选择记录?
我正在使用MySQL 5.6。我创建了一个包含 366 个分区的表来按天保存数据,这意味着一年中我们最多有 366 天,所以我在该表上创建了 366 个分区。哈希分区由一个整数列管理,该列为每条记录存储 1 到 366。
Report_Summary表:
我目前的查询:
上面的查询运行良好,并且使用分区p360到p364来获取数据。现在的问题是当我将fromDate 传递给 '2014-12-26' 并将 toDate 传递给 '2015-01-01'然后上面的查询将不起作用。因为“2015-01-01”的年份是1,所以我的条件失败了。
现在我尝试在IN运算符中传递值,然后它在查询下面的数据库检查中完美运行:
为了生成上述场景,我创建了一个函数并传递了两个日期并生成了一个逗号分隔的 ID 字符串
这将我的数据返回为:
我尝试在我的查询中使用该函数,所以我将查询更改如下:
然后我使用EXPLAIN PARTITION SELECT...检查了上述查询的执行计划。我发现我的条件行不通。它使用所有分区来获取数据。我只想使用这些日期的特定分区。必须只检查这360,361,362,363,364,365,366,1分区意味着p360到p366和p1。
为什么我的查询不起作用?这不是实现这个的正确方法然后我想要解决方案我该如何实现呢?
我从编码中知道我可以实现它,但我必须编写一个查询来实现它。
谢谢...
mysql - 索引 find_in_set 使用
我在 3 个表上使用内连接,我在一个表中的一列是逗号分隔值(varchar),例如 m03412,3456,skeys,我在其中一个内连接中使用 FIND_IN_SET。
查询大约需要 3 分钟。
有没有办法通过索引来减少时间?
我有 2 张桌子
用户
userid、
managerid、
training_title、status 和approvrid ....
细节
用户名和名称
mysql - 按集合中的值序列排序
我怎样才能在集合中按它们的顺序排列连接的名称(它是一个变量,其中我有 ids 逗号分隔,如“4,3,2”)?到目前为止,这些名称是按 id "2,3,4" 排序的。这是我的子查询。
mysql - 选择查询中的 find_in_set 和正则表达式
有没有办法检查逗号分隔值列中的正则表达式?
我有一个名为 storeId 的列,其值为 EMP_0345,00345,OPS,我只需要获取其中没有字母数字字符的 storeid。
我可以使用正则表达式 REGEXP '^[0-9]+$' 获取有效的 store_ids,但是如何获取逗号分隔值列中的值?
php - Mysql:在没有或子查询的情况下使用 GROUP_CONCAT 和 FIND_IN_SET
嗨,我在下面有一个简单的示例查询,这不是我在现实中使用的,因为它太复杂了,无法在这里解释。基本上,此查询用于 Web 应用程序中的搜索。
由于此查询可能提取的数据量很大,我试图避免使用 HAVING 或子查询,因为它大大增加了检索数据所需的时间。
我想在 where 子句中使用 FIND_IN_SET,但显然 GROUP_CONCAT 不能在 where 子句中使用,所以我尝试像下面这样简单,但我不认为变量设置在 where 并且没有返回结果。
我努力了:
但它看起来确实很慢。
也试过:
但是必须有一种方法可以根据 group_concat 中的值有效地过滤结果?
mysql - 我想重写我的 MySQL 查询,以便 FIND_IN_SET 除非必要,否则不会进行全表扫描
我想重写我的 MySQL 查询,以便除非必要,否则最后一个表连接不会进行全表扫描。table1.csv 是一个 varchar 字段,其中包含与 table2 的 join_id 列相关的逗号分隔 ID。我只想调用 FIND_IN_SET,当 table2 在第一次连接中未连接到 table1 并且 table1 的 csv 列不是空字符串时,它会执行全表扫描。