猿问

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

我想知道是否有一种简单的方法可以在另一个字符串中查找一个字符串的出现。我正在使用这个查询:


$nameId = "SELECT 

`testresults`.`id` AS TRid, requirementId, TestCaseId, TestSuiteCollectionId, TestSuiteId, TestSuiteCollectionName, `testcaserequirement`.`nameId` AS `Requirement`

FROM

testresultrequirementlink

    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。


ABOUTYOU
浏览 145回答 1
1回答

呼啦一阵风

您可以删除下划线:where replace(TestSuiteCollectionName, '_', ') LIKE concat('%', ?, '%')是?一个参数占位符。我鼓励您使用参数而不是修改查询字符串。上面的匹配项可能比您预期的要多。或者,您可以转换为正则表达式:where TestSuiteCollectionName regexp replace(?, '_', '_?')问号使_可选。这是对您问题的最狭窄答案。
随时随地看视频慕课网APP
我要回答