为了账号安全,请及时绑定邮箱和手机立即绑定

一个字符串出现在另一个字符串中

一个字符串出现在另一个字符串中

PHP
ABOUTYOU 2023-05-12 15:36:53
我想知道是否有一种简单的方法可以在另一个字符串中查找一个字符串的出现。我正在使用这个查询:$nameId = "SELECT `testresults`.`id` AS TRid, requirementId, TestCaseId, TestSuiteCollectionId, TestSuiteId, TestSuiteCollectionName, `testcaserequirement`.`nameId` AS `Requirement`FROMtestresultrequirementlink    LEFT JOIN`testresults` ON `testresultrequirementlink`.`testresultId` = `testresults`.`id`LEFT JOIN`testsuitecollection` ON `testresults`.`TestSuiteCollectionId` = `testsuitecollection`.`id`LEFT JOIN`testcaserequirement` ON `testresultrequirementlink`.`requirementId` = `testcaserequirement`.`id`WHERE `TestSuiteCollectionName` LIKE '%".$checkfileName[0]."%'GROUP BY `testresultrequirementlink`.`requirementId`;";$checkfileName[0]将在 if 语句中设置,其中设置为GiM1_0. 我的问题是该列不包含该特定字符串,仅包含其中的一部分。sql表的图像那么有没有一种方法可以“搜索/查找”GiM1_0并获得'GiM10_Integrated_testbed1'. 不删除_?GiM1_0也许有办法查看是否找到了一些?他们都有GiM1。
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您可以删除下划线:

where replace(TestSuiteCollectionName, '_', ') LIKE concat('%', ?, '%')

?一个参数占位符。我鼓励您使用参数而不是修改查询字符串。

上面的匹配项可能比您预期的要多。

或者,您可以转换为正则表达式:

where TestSuiteCollectionName regexp replace(?, '_', '_?')

问号使_可选。这是对您问题的最狭窄答案。


查看完整回答
反对 回复 2023-05-12
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信