- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个具有以下结构的表:
select * from test_table;
id |load_balancer_name |listener_descriptions |
---|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1 |with_cert_1 |[{"Listener": {"Protocol": "HTTPS", "LoadBalancerPort": 443, "InstanceProtocol": "HTTP", "InstancePort": 9005, "SSLCertificateId": "arn:aws:acm:us-west-2:xxxx:certificate/xxx"}, "PolicyNames": ["xxxx"]}] |
2 |with_cert_1 |[{"Listener": {"Protocol": "HTTPS", "LoadBalancerPort": 443, "InstanceProtocol": "HTTP", "InstancePort": 9005, "SSLCertificateId": "arn:aws:acm:us-west-2:xxxx:certificate/xxx"}, "PolicyNames": ["xxxx"]}] |
3 |with_cert_2 |[{"Listener": {"Protocol": "HTTPS", "LoadBalancerPort": 443, "InstanceProtocol": "HTTP", "InstancePort": 9005, "SSLCertificateId": "arn:aws:acm:us-west-2:xxxx:certificate/yyy"}, "PolicyNames": ["xxxx"]}] |
4 |no_cert | |
我需要的是根据 listener_descriptions
列进行一些搜索。为了确保 JSON_*
方法有效,我做了这个查询,效果很好:
select
id, load_balancer_name,
JSON_EXTRACT(listener_descriptions, "$[*].Listener.SSLCertificateId")
from test_table;
id |load_balancer_name |JSON_EXTRACT(listener_descriptions, "$[*].Listener.SSLCertificateId") |
---|-------------------|----------------------------------------------------------------------|
1 |with_cert_1 |["arn:aws:acm:us-west-2:xxxx:certificate/xxx"] |
2 |with_cert_1 |["arn:aws:acm:us-west-2:xxxx:certificate/xxx"] |
3 |with_cert_2 |["arn:aws:acm:us-west-2:xxxx:certificate/yyy"] |
4 |no_cert | |
现在我想选择匹配 SSLCertificateId
的所有行:
select
*
from test_table
where JSON_CONTAINS(listener_descriptions, '"arn:aws:acm:us-west-2:xxxx:certificate/xxx"', "$[*].Listener.SSLCertificateId")
;
但是没有找到结果。我尝试在 JSON_CONTAINS
的第二个参数中使用单引号和双引号的多种组合,但没有成功。
version() |
-----------------------------------------|
10.3.8-MariaDB-1:10.3.8+maria~bionic-log |
最佳答案
JSON_CONTAINS()
不允许在其路径中使用 [*]
。相反,使用 JSON_EXTRACT()
提取所有证书的数组,并在其上使用 JSON_CONTAINS()
。
select *
FROM test_table
WHERE JSON_CONTAINS(JSON_EXTRACT(listener_descriptions, "$[*].Listener.SSLCertificateId"), '"arn:aws:acm:us-west-2:xxxx:certificate/xxx"')
;
关于MySQL/MariaDB JSON_EXTRACT 和 JSON_CONTAINS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52083608/
目前使用 MYSQL 5.7,即将迁移到 8.0。 我们的数据库中有一个 json 字段,其值如下所示: [ { "first_name":"bob", "last_name"
我有一个包含 json 列的表,我在其中存储了契约(Contract)类型的 ID 列表。我想在 contract_types 表上进行联接,以便我可以获得契约(Contract)类型名称的串联列表及
我有这个代码: (SELECT COUNT(streams.id) FROM streams WHERE JSON_CONTAINS(streams.server, '[\"servers.id"\"
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我有一个像 这样的 json 数组 { "response":[ { "Rate Lock":"Yes", "Loan Amount":"1
我正在使用以下查询来搜索名为“JavaScript”的 json 值 当我运行查询时,我得到 0 个结果 这是我正在使用的插入命令 INSERT INTO admin_acc_mngmt_notes
我希望能够使用 json_contains 不区分大小写地“搜索” 这是 json 示例: [ { "title": "foo Bar", "author": "melaine"
使用 MySQL 5.7,我想知道 PostgreSQL 等价物 SELECT * FROM user_conversations WHERE JSON_CONTAINS(users, JSON_AR
在 MySQL 中,我使用 PHP 的 json_encode 将数据存储在“jsonValues”字段中: {"product_category":[[{"category":["28"]},{"p
我正在尝试选择 json 列中的 roles 属性包含任何值的所有列。 我试过的语句: SELECT * FROM components WHERE json->'$.roles' IN(1) 这甚至
我在 MySQL 数据库中有一个 JSON 字段,其中包含类似 [1,3,4,7] 的值。我希望能够轻松地从 PHP 变量提供另一个数组并确定是否存在任何重叠。我知道这个例子不起作用,但这是我想要做的
我有一个具有以下结构的表: select * from test_table; id |load_balancer_name |listener_descriptions
在我的 MySQL 数据库 (8.0.23) 上,我有一个 JSON 列是 multi value indexed .我想使用 QueryDSL 通过 JSON_CONTAINS 使用索引进行查询。我
我正在使用 MySQL 8 的新 JSON 功能,特别是多值索引。 我注意到有两种方法可以检查 JSON 数组是否包含给定值:MEMBER OF() 运算符和 JSON_CONTAINS() 函数。
我想要一个查询来返回表 minto_regsix_session 中所有条目的所有字段,这些条目在 'day' 字段中包含 2 的值。以下是表的 phpMyAdmin 的屏幕截图,包括包含 JSON
我有下表,其中在 JSON 整数数组上设置了多值索引: CREATE TABLE test ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, catIds
通过使用 (1) 我从 laravel 请求中获得了想要的结果。但是,一旦我将硬编码的“fish”切换为 $str = 'fish' 这样的变量,就会出现语法错误。 (1) $find = anima
我正在尝试运行以下程序: $driverID = 123; $query = 'SELECT * FROM cars WHERE JSON_CONTAINS(`data`, \'{"drivers":
因此,我在表格的一列中列出了“白名单”国家(例如 ['PT', 'US', 'UK', 'ES']),并且我想检查用户的国家(例如“美国”)是否在白名单中,以便向用户显示该行的内容。 我进行了搜索,发
我在查找带有参数为 JSON 格式的 where 子句的记录时遇到一些问题。例如,JSON 列的值类似于 ["1","2","3"]。当我运行 where JSON_CONTAINS(tags, '[
我是一名优秀的程序员,十分优秀!