mysqljsonarray_MySQLJSON数组在Where的条件下
(MySQLJSO。。。
MySQL JSON数组在Where的条件下(MySQL JSON array in Where in condition)
它正在⼯作,但只返回⼀个记录。 我总共有5个。
Catalog.similar是json类型字段。 我从返回中删除[“”]并放⼊WHERE IN Condition。 但我只得到⼀条记录。
SELECT * FROM similar_codes a WHERE a.id IN (SELECT REPLACE(SUBSTR(c.similar,2,LENGTH(c.similar)-2),'"','') FROM catalog c WHERE c.id=1)
从WHERE IN内部的选择返回。
SELECT REPLACE(SUBSTR(c.similar,2,LENGTH(c.similar)-2),'"','') FROM catalog c WHERE c.id=1)
3380, 3382, 1952, 3384, 3383
It's working but returning just one Record. I Have 5 in Total.
Catalog.similar is json type field. I remove [""] from the return and putting inside the WHERE IN Condition. But I get just one record.
SELECT * FROM similar_codes a WHERE a.id IN (SELECT REPLACE(SUBSTR(c.similar,2,LENGTH(c.similar)-2),'"','') FROM catalog c WHERE c.id=1)
The Return from the select inside the WHERE IN is.
SELECT REPLACE(SUBSTR(c.similar,2,LENGTH(c.similar)-2),'"','') FROM catalog c WHERE c.id=1)
3380, 3382, 1952, 3384, 3383
2020-02-17 19:43
满意答案
⽽不是试图开发⾃⼰的搜索JSON的⽅式,为什么不使⽤内置函数? 或者,如果您使⽤的是不⽀持JSON数据的MySQL版本,则可能更适合使⽤链接表。
-- Create main table
CREATE TEMPORARY TABLE test (id INT(11));
INSERT INTO test (id) VALUES (3380), (3382), (1952), (3384), (3383);
-- Create JSON table
CREATE TEMPORARY TABLE test_search (id INT(11), similar JSON);
INSERT INTO test_search (id, similar) VALUES (1, JSON_ARRAY(3380, 3382, 1952, 3384, 3383));
-- Select
SELECT t.id
FROM (SELECT similar AS ids FROM test_search WHERE id = 1) ts
INNER JOIN test t ON JSON_CONTAINS(ts.ids, CAST(t.id AS json), '$');
Rather than trying to develop your own way to search JSON, why not use the built in functions? Alternatively, if you are using a version of MySQL that doesn't support JSON data, you might be better looking at using a linked table.
-- Create main table
CREATE TEMPORARY TABLE test (id INT(11));
INSERT INTO test (id) VALUES (3380), (3382), (1952), (3384), (3383);
-- Create JSON table
CREATE TEMPORARY TABLE test_search (id INT(11), similar JSON);
INSERT INTO test_search (id, similar) VALUES (1, JSON_ARRAY(3380, 3382, 1952, 3384, 3383));
-- Select
SELECT t.id
FROM (SELECT similar AS ids FROM test_search WHERE id = 1) ts
INNER JOIN test t ON JSON_CONTAINS(ts.ids, CAST(t.id AS json), '$');
2017-05-15
相关问答
mysql> SET @`json` :=
-> '[
'> {
'> "id": 1, "type": 2
'> },
'> {
'> "id": 2, "type": 1
'> }
'> ]';
Query OK, 0 rows affected (0.00 sec)
您可以获取数组中的所有ids : mysql> SELECT JSON_EXTRACT(@`json` ,'$[*]....
您可以使⽤_.startsWith()来匹配您需要的前N个字符,⽽不是使⽤_.matches()。 例如,如果要匹配以“he”开头的名称,则可以执⾏以下操作: var result = [{
name: 'hello'
}, {
name: 'healthy'
}];
_.filter(result, function(obj) {
return _.startsWith(obj.name, 'he');
});
这应该匹配两者。 您还可以使⽤正则表达式来匹配它们: _.
您的代码中存在⼏个问题 mysql_fetch_assoc返回⼀个数组。 要在sqls where使⽤它where语句需要从中获取值。 否则它将被序列化为字符串“Array”,这不是您要寻的疾病。 array_values只能采⽤1.如果你传递2个参数,它不会提取任何值(⾄少在php 5.6.21中它只打印警告)。 在$data变量中,你有⼀个像[[lat,lng,magnitude],[lat,lng,magnitude],...]这样的数组。 如果您尝试从此数组中提取值,它将创建⼀个与$da...
我尝试这个查询它给出了完美的图形。 for (var i=0; i
{
**series**.push({
name: data.value[i].name,
data:data.value[i].value
});
}
var chart = new 下载mysql为什么下载不了
点击此链接 已为⼦菜单创建了两个模板
{{item.subCategory}}
...
$start = 1;
while($row = mysqli_fetch_assoc($result))
{
$emparray[$start] = $row;
$start++;
}
$dataList = json_encode($emparray);
echo $dataList;
尝试这个!! ⼤多数情况下,while循环中的部分有点搞砸了。 $start = 1;
while($row = mysqli_fetch_assoc($result))
{
$emparray[$
if(is_array($arr)){ $valuesArr = array(); foreach($arr as $row){ $email = mysql_real_escape_string( $row['property_name'] ); $post = mysql_real_escape_string( $row['post_type'] ); $sql = "update wp_posts set post_title='".$email."',
post_type='".$
⽽不是试图开发⾃⼰的搜索JSON的⽅式,为什么不使⽤内置函数? 或者,如果您使⽤的是不⽀持JSON数据的MySQL版本,则可能更适合使⽤链接表。 -- Create main table
CREATE TEMPORARY TABLE test (id INT(11));
INSERT INTO test (id) VALUES (3380), (3382), (1952), (3384), (3383);
-
- Create JSON table
CREATE TEMPORARY
只需使⽤JSON_CONTAINS: SELECT * from `users`
WHERE JSON_CONTAINS(`data`, '{"name": "John","checked": true}');
Just use JSON_CONTAINS: SELECT * from `users`
WHERE JSON_CONTAINS(`data`, '{"name": "John","checked": true}');
相关⽂章
⽐如说var level = [["ID","NAME"]];
...
JSON(JavaScript Object Notation) 是⼀种轻量级的数据交换格式。易于⼈阅
...
利⽤PreparedStatement执⾏插⼊,更新的操作时候: 如: PreparedState
...
JSON-lib包是⼀个beans,collections,maps,java arrays 和XML
...
我⽤的是hibernate +struts <% dtreeBS treebs= new d
...
我想要解析类似:{"total":100,"rows":[{&
...
⽐如JSONObject: {"temp1":{"b":&q
...
XStream_WORKSPACE\com656463\xstream.
最新问答
如果启⽤了复制处理程序,请确保将其置于其中⼀个安全⾓⾊之后。 我见过⼈们做的另⼀件事是在不同的端⼝上运⾏admin。 最好在需要auth的页⾯上使⽤SSL,这样你就不会发送明确的密码,因此管理和复制将发⽣在8443上,⽽常规查询将在8080上发⽣。 如果您要签署⾃⼰的证书,请查看此有⽤的SO页⾯: 如何在特定连接上使⽤不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re
第⼀:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的⼤写'T')。 xpath 区分⼤⼩写。 第⼆:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗⽰你在外部td中有⼀个'td'元素,⽽它们是兄弟妹。 有很多⽅法可以在这⾥获得制作和模型
问题是,在启⽤Outlook库引⽤的情况下, olMailItem是⼀个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引⽤此Object 。 这基本上是⼀个递归错误,因为你有对象试图⾃⼰分配⾃⼰。 还有另⼀个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另⼀个错误(可能是
你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运⾏的⽅式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is
HP_PAV
这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass:
class_attribute = [] 这⾥已经为类定义了MyClass.class_attribute ,您可以使⽤它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可⽤,并且对于类的每个实例都是唯⼀的。 您只能在实例上使⽤它们。在⽅法__init__中定

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。