我需要在mysql函数JSON_搜索中查找通配符的帮助
我尝试使用以下方法获取正确的通配符(尝试[0-9]%): 我只需要得到“openstack-中子-12.1.0-2-el7ost.noarch” 但并非所有 “openstack-中子-blabla1-14.5.5-el7ost.noarch” “openstack-中子-blabla2-12.1.0-2-el7ost.noarch” 我做错了什么我需要在mysql函数JSON_搜索中查找通配符的帮助,mysql,mysql-json,Mysql,Mysql Json,我尝试使用以下方法获取正确的通配符(尝试[0-9]%): 我只需要得到“openstack-中子-12.1.0-2-el7ost.noarch” 但并非所有 “openstack-中子-blabla1-14.5.5-el7ost.noarch” “openstack-中子-blabla2-12.1.0-2-el7ost.noarch” 我做错了什么 谢谢所以您的seachstring必须以openstack中子-开始,以-12.1.0-2-el7ost.noarch结束 使用 搜索模式像字符串
谢谢所以您的seachstring必须以
openstack中子-
开始,以-12.1.0-2-el7ost.noarch结束
使用
搜索模式像字符串一样工作,不像常规表达式,你是对的。但我认为[]这也是一个类似的操作符还是我错了?我看到了这个链接,因为我知道通配符是用于字符串以及如何搜索字符串的,因为它在链接中进行了扩展。您提供了一个搜索模式,显示您需要正则表达式(数字部分),这是可能的,但您提供的数据示例不够,因此我们可以为您构建一个示例,感谢您的回答。这样,JSON_搜索将只捕获“12.1.0-2”。我需要一个能捕捉到中子的。我只需要强制“中子-”后面的第一个字符是一个数字,但找不到方法。请给出一个json的例子,json是一个字符串,这样你就可以使用reguzlar表达式,它是onyl更复杂,我尝试过使用regex,但部分有效。我正在尝试使用“one”参数进行JSON_搜索。这样做的目的是他找到了第一场比赛并进入下一个记录。因此,我必须在JSON_搜索中包含正则表达式,而不是在JSON_搜索之后。我不知道如何在JSON_搜索中包含正则表达式。只要你在搜索,尤其是在搜索丢失的数字。因此,请向我们展示您使用的模式,并向我们展示json数据openstack-Neutor-1-el7ost.noarch openstack-Neuton-12.1.0-2-el7ost.noarch openstack-Neuton-Blablablabla-el7ost.noarch openstack-Neuton-1-el7ost.noarch openstack-Neuton-12.1.0-2-el7ost.noarch openstack-Neuton-Blabla3-el7ost.noarch前两个必须通过,如果我在“中子”后面有一个数字,那很好。
JSON_SEARCH(packages, 'one', 'openstack-neutron-[0-9]%', null, '$.packages[*]')
WHERE JSON_SEARCH(packages, 'one', 'openstack-neutron-%', null, '$.packages[*]') IS NOT NULL
AND JSON_SEARCH(packages, 'one', '%-12.1.0-2-el7ost.noarch', null, '$.packages[*]') IS NOT NULL