[英]How to match a string with another string values exactly?
我有一个表值如下字符串:
一种方法是将传入的字符串拆分为单独的地址,然后检查它们是否都与表值匹配:
$string = 'PhysicalAddress:E8-6A-64-DE-48-60PhysicalAddress:04-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-8FPhysicalAddress:06-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-92';
$components = str_split($string, 33);
$query = "SELECT *
FROM table1
WHERE preview LIKE '%" . implode("%'\n AND preview LIKE '%", $components) . "%'";
echo $query;
输出:
SELECT *
FROM table1
WHERE preview LIKE '%PhysicalAddress:E8-6A-64-DE-48-60%'
AND preview LIKE '%PhysicalAddress:04-EA-56-08-E6-8E%'
AND preview LIKE '%PhysicalAddress:04-EA-56-08-E6-8F%'
AND preview LIKE '%PhysicalAddress:06-EA-56-08-E6-8E%'
AND preview LIKE '%PhysicalAddress:04-EA-56-08-E6-92%'
根据尼克的答案进行了更新。
<?php
$submit_input = array(
"PhysicalAddress:E8-6A-64-DE-48-60PhysicalAddress:04-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-8FPhysicalAddress:06-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-92",
"PhysicalAddress:04-EA-56-08-E6-92PhysicalAddress:E8-6A-64-DE-48-60PhysicalAddress:04-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-8FPhysicalAddress:06-EA-56-08-E6-8E",
"PhysicalAddress:06-EA-56-08-E6-8EPhysicalAddress:E8-6A-64-DE-48-60PhysicalAddress:04-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-8FPhysicalAddress:04-EA-56-08-E6-92",
"PhysicalAddress:04-EA-56-08-E6-8FPhysicalAddress:E8-6A-64-DE-48-60PhysicalAddress:04-EA-56-08-E6-8EPhysicalAddress:06-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-92",
"PhysicalAddress:04-EA-56-08-E6-8EPhysicalAddress:E8-6A-64-DE-48-60PhysicalAddress:04-EA-56-08-E6-8FPhysicalAddress:06-EA-56-08-E6-8EPhysicalAddress:04-EA-56-08-E6-92",
);
foreach($submit_input as $k=>$v) {
$components = explode("PhysicalAddress:", $submit_input[$k]);
$main_value = implode("%'\n AND preview LIKE '%", array_filter($components) );
$query = "SELECT * FROM table1 WHERE preview LIKE '%" . $main_value . "%'";
echo $query;
}
exit;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.