我尚未设法弄清楚如何解决我目前面临的问题。
我的数据库表中有某些记录 - 研究组是特定的。例如 IK15 , IK16 , TEK15 , TEK17 等等。基本上,第一部分,在这种情况下的字母保持不变,但是它们之后的数字是不同的,并且会在一段时间后改变。
我需要创建一个条件,以检查记录是否符合条件。但是它只能检查记录的第一部分,在这种情况下。
因此,它应该返回 true for ik11 , ik14 IK12 , IK19 (检查记录是否包含" ik"(和 false 其他所有不同的内容。
有什么想法吗?
谢谢!
您的问题有点不清楚,但是从我的收集中,您可以使用正则表达式?例如,以下内容匹配以" IK"开头的任何内容,其次是数字。
IK[0-9]*$
这将与IK33
IK11
IK19
这样的字符串匹配,但不匹配IK19a
由于值在单列中,您可以使用LIKE
运算符检查列(VARCHAR
(是否包含诸如IK
:
$results = DB::table("table")->where("study_groups", "LIKE", "%IK%")->get();
因此,对于您的例子
// Study Groups Column
"IK15, IK16, TEK15, TEK17"; // true (`IK15`, `IK16`)
"IK12, TEK11, IK17, KS14"; // true (`IK12` and `IK17`)
"IK11, IK14 IK12, IK19"; // true (all values)
LIKE
操作员是非常开放的,这意味着如果它在列中找到 IK
awhere ,它将返回该行。
好吧,我现在按照自己想要的方式工作了。
我最终从字符串中剥离了数字,然后将其与特定记录进行比较,然后根据相等的记录返回false还是true。
我想我的问题格式不佳,很难理解,因此我为此表示歉意。