- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的情况如下。
我在 mysql 表中的“productname”列中有以下记录。
Adults-Work-Blue-Green-Pink-Ghagra-Choli-Dupatta
Afro-Party-Retro-Wigs-Hair-Black-Curly-Gabbar
现在我想找到以 A 开头然后在第一个连字符 W 之后的记录。
如果我按如下方式编写查询,
select DISTINCT Item_Code, Item_Name
from tbl_stock_detail
where Item_Name like 'A%-W%'
它向我显示了两条记录。我只想在这里看到第一条记录,因为在 A 之后,W 是连字符之后的第一个字母。同样,如果我将其设置为“A%-W%-B%”,我希望它仅显示“A”之后的第一条记录,“W”是第一个连字符后的第一个字母,“B”是后的第一个字母第二个连字符。请记住,有 1000 条不同名称的记录,因此我们无法检查字符串长度。
我可以在 mysql 中编写这样的查询来检查顺序吗?
对不起,我不擅长正则表达式。使用正则表达式这可能是可能的。
请指教。
编辑问题如下:
我有这样一张唱片《长裙红亮片提克里舞》现在客户说,他只想根据这三个字符进行搜索,R : 红色T : 提克利S : 裙子
还有第二件事。如果 Skirt 和 Red 有 2 个空格而不是 1 个,我们的旧正则表达式将不起作用。但它应该可以工作,因为他们有时会错误地在 2 个单词之间添加多个空格。你能帮我满足这两个要求吗?
更多编辑:
这是静态的,但它给我一些 PHP 中的转义序列问题。下面是我的 php 代码,
<?php
$var = 'SRT';
for($i=0;$i<strlen($var);$i++)
{
$term = '^'.$var[$i].'|[- ]'.$var[$i];
if($i == 0)
$subquery0 .= " where Item_Name REGEXP '".$term."'";
else
$subquery0 .= " or Item_Name REGEXP '".$term."'";
}
?>
当我回显 $term 时,它只显示 '^S。但是如果我删除 |符号然后它显示完整的字符串。可能是管道符号需要转义序列我试过它为'//|'但它不起作用。对此有任何想法,或者我必须提出一个新问题,因为这是一个 PHP 问题?
最佳答案
正如 hjpotter92 在他的评论中建议的那样,您应该能够使用正则表达式来定位具有指定匹配项的行。
单个 LIKE
谓词不能执行这种类型的匹配。 (这需要了解每个组件的最大长度('Adults'、'Work' 等)以及一大堆笨重的 LIKE 谓词和'ed 和 or' 在一起以获得所有各种可能的长度。我们我们我们不想去那里。)
正则表达式没什么可怕的。正则表达式可以变得相当复杂,但这正是它们显示其力量并变得非常有用的地方。
要匹配第一个字符是“A”(大写或小写),后面跟一个连字符,紧跟在第一个连字符之后的是“W”,您可以这样做:
WHERE Item_Name REGEXP '^A[^-]*-W'
类似地,从 A 开始,后跟(稍后)一个连字符,紧跟在下一个连字符之后的是“W”,然后(稍后)是另一个连字符和一个“B”
WHERE Item_Name REGEXP '^A[^-]*-W[^-]*-B'
让我们一点一点地解压最后一个正则表达式:
^A
第一个插入符匹配字符串的开头,字符 A 匹配字符 A(注意:这是对我的数据库连接的不区分大小写的匹配)。也就是说,“从 A 或 a 开始”。
[^-]*
这部分匹配任意数量的不是连字符的字符。
-W
这部分匹配紧跟 W 的连字符。(由于前面的部分,这将是先前匹配的 A 之后出现的第一个连字符。)
[^-]*
同样,不是连字符的任意数量的字符(零个或多个)
-B
匹配紧跟 B 的连字符。同样,这将是匹配的 W 之后的第一个连字符。
字符串的其余部分可以是任何内容。
关于Mysql 很特别 Like 要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25753267/
我需要为登录用户生成一个建议列表。基本上是“既然你喜欢这些东西,而其他喜欢这些东西的人也喜欢这些东西,那么你可能也会喜欢这些东西”。 我可能会想出一个不错的算法来产生这样的结果,但在我重新发明轮子之前
此查询中有许多参数是用户可调整的,我希望用户能够创建一些文本文件,使用 sqlite3 db.sqlite ".read query.sql" > result.csv 运行查询,而不是直接将它们编辑
这个问题在这里已经有了答案: MySQL query finding values in a comma separated string (11 个回答) 11 个月前关闭。 我有一个名为 pape
我已将以下内容添加到我的 Blogger 模板中,以便在我的每个 Blogger 帖子上添加一个“赞”按钮: document.write('<iframe src="htt
当我点击“推荐”时,按钮打开的窗口隐藏(不可见)在页脚后面。其实我有截图来准确解释它:http://www.diigo.com/item/image/1q1ia/tw30 当然是XFBML,因为我知道
我在 facebook 上创建了一个页面“全民教育”。在我的网站中,我想提供一个点赞按钮来点赞此页面,而不是url,并且还想显示网站中该页面收到的点赞数以及点赞按钮。我使用了“添加这个”,但它显示了该
这个问题在这里已经有了答案: SQL Server, combining LIKE and IN? (3 个答案) 关闭 6 年前。 我想准备一个查询: SELECT name FROM Emplo
我有一个包含 200 条记录的表,其中 10 条记录的文本包含单词“TAX”。 当我执行时 Select * from tbl1 WHERE [TextCol] LIKE '%TAX%' 然后我正确地
我要执行查询: ---------------------- |name | ---------------------- |data
嗨,我正在为一个我没有设计的数据库编写 MySQL 请求,目前无法真正更改,我有一个问题,我还没有测试过这个,所以它可能按设计工作,但我没有当然。 所以我正在搜索的表只有三列 id、标题和描述,但描述
我已经尽力把这个问题说得很透彻了,所以如果你不耐烦,就跳到最后看看真正的问题是什么...... 我正在努力调整我们其中一个数据库中某些搜索功能的实现方式。为此,我正在向我们的应用程序 API 添加一些
我正在学习 MySQL,我尝试在查询中将“NOT LIKE”与“OR”结合起来,但没有成功。 假设我有一个 table1,其中有一列名为“word”,如下所示: word
Perl-Selenium 还提供了 Test::More 的标准方法,例如 ok()、like()、is() 等,也作为对象方法,例如$sel->like()。 ($sel 是 selenium p
我正在开发这个网站的前端:http://oq.totaleclips.com ,并从以下位置开发它:http://dev-jon.c2mx-hrd.appspot.com 我移动了社交按钮以使 UI
我正在创建一个搜索功能。我的 sql 查询使用 LIKE和 OR LIKE在 where 子句中。我正在搜索的表中的字段之一称为 quantity_types它只存储与在另一个表中找到的值相对应的代码
我有一个名为 platform 的表,其中有一列名为 entityid。 entityid 中的数据应该遵循 n.n.n 格式(其中 n = 1 个或多个数字,第一个数字是站点 ID)。 如果我运行这
所以,我正在练习考试(高中水平),虽然我们从未想过 SQL,但在处理 MS Access 时有必要了解一点. 任务是选择名称与其所属城镇不对应的区域ID。 解决方案中有以下示例: SELECT nam
1.作用与语法描述 作用: 正则表达式是使用指定字符串来描述、匹配一系列符合某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串操作。MongoDB 使用 $regex 操作符来设
我们有一个网站,其中有文章页面,每个页面上都有一个类似 Facebook 的按钮,并与该文章 URL(URL 编码)相关联。例如,在一些带有 url http://www.site.com/artic
我在理解 SQL 中的 LIKE 和 NOT LIKE 运算符时遇到问题。这是我执行的查询: select serial_number from UNIT U group by serial_numb
我是一名优秀的程序员,十分优秀!