小编Kaz*_*Nur的帖子

如何将字符串数组插入mysql json列

我遇到了一个问题。当用JSON类型将int数组插入Mysql时,我们可以编写类似的sql INSERT INTO table (json_column) VALUES ('[1,2,3]')。但是当我想插入字符串数组时,我使用INSERT INTO table (json_column) VALUES ("['item1','item2','item3']"),提示错误:3140 - Invalid JSON text: "Invalid value." at position 1 in value for column 'test.names'. 我该怎么办?

c# mysql sql

2
推荐指数
1
解决办法
5602
查看次数

比较 PostgreSQL 中的数组

我在 postgres 中有一个表,其中一value列包含字符串数组。我的目标是找到包含以下任何字符串的所有数组: {'cat', 'dog'}

id  value
 1  {'dog', 'cat', 'fish'}
 2  {'elephant', 'mouse'}
 3  {'lizard', 'dog', 'parrot'}
 4  {'bear', 'bird', 'cat'}
Run Code Online (Sandbox Code Playgroud)

以下查询用于ANY()检查 'dog' 是否等于每个数组中的任何项目,并将正确返回第 1 行和第 3 行:

select * from mytable where 'dog'=ANY(value);
Run Code Online (Sandbox Code Playgroud)

我试图找到一种方法来搜索value字符串数组中的任何匹配项。例如 :

select * from mytable where ANY({'dog', 'cat'})=ANY(value);
Run Code Online (Sandbox Code Playgroud)

应该返回第 1、3 和 4 行。但是,上面的代码会引发错误。有没有办法在这个等式的左边使用 ANY() 子句?如果没有,检查数组中是否有任何字符串的解决方法是value什么?

sql arrays postgresql operators array-comparison

1
推荐指数
1
解决办法
209
查看次数

如何使用 STRING_AGG() 获取以逗号分隔的升序字符串

我的桌子看起来像这样

Color  Order 
------------
Red    49
Blue   32
Green  80
Green  30
Blue   93
Blue   77
Red    20
Green  54
Red    59
Red    42
Red    81
Green  35
Blue   91
Run Code Online (Sandbox Code Playgroud)

我的查询是

SELECT Color, Count(*) AS Count, STRING_AGG(Order,',') AS AggOrder
FROM MyTable
GROUP BY Color
Run Code Online (Sandbox Code Playgroud)

当我按颜色分组并聚合时,我得到未排序的订单

像这样的东西

Color  Count  AggOrder
------------------------------
Red    5      49,20,59,42,81
Blue   4      32,93,77,91
Green  4      80,30,54,35
Run Code Online (Sandbox Code Playgroud)

问题:AggOrder 无序 49,20,59,42,81

我想订购

所以最终结果是

Color  Count  AggOrder
------------------------------
Red    5      20,42,49,59,81
Blue   4      32,77,91,93
Green  4      30,35,54,80
Run Code Online (Sandbox Code Playgroud)

我尝试了这个查询

SELECT Color, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server string-aggregation string-agg

1
推荐指数
1
解决办法
2768
查看次数

如何选拔三科成绩均低于100分的学生?

我遇到了这个问题

这是我对此的回应,我最近刚刚开始学习 SQL。

Select a.roll_number
     , a.name
     , b.roll_number 
  from student_information a
  join examination_marks b
    on a.roll_number = b.roll_number
 Group 
    by roll_number
 Having Sum(subject_one.examination_marks + subject_two.examination_marks + subject_three.examination_marks) < 100;
Run Code Online (Sandbox Code Playgroud)

mysql sql t-sql database sql-server

1
推荐指数
1
解决办法
3万
查看次数