我已经获得了以下PHP代码(简化版)。我需要对查询做的是找出数据库表中是否存在匹配,其中column1 = $ field1 AND column2包含$ ABC(来自数组)。这是数据库表中列的格式。
表格列和示例条目:
id - int(11) Auto-Increment
column1 - varchar(128) example entry: Hello There
column2 - varchar(128) example entry: 1, 2, 4, 6, 7, 8, 10, 12, etc.
PHP代码
$field1 = $_POST['field1'];
$checked = implode(',', $_POST['Array']);
foreach ($_POST['Array'] as $ABC) {
$query = $conn->query("");
}
有关数组的信息:
$_POST['Array']
是一系列复选框,值为1,2,3,4,5,6,7,8,9,10,11,12等等,具体取决于有多少。所有数字。
示例:<input type="checkbox" name="Array[]" value="12"> 12
如何编写查询以检查是否存在column1 = $field1 AND column2 CONTAINS $ABC
的结果。
像WHERE column2 LIKE '%{$ABC}%'
这样的东西会起作用吗?我刚发现使用它作为一个例子。我之前从未设置过查询,所以不确定它是如何工作的。
我需要确保如果$ ABC = 2 ......它在数据库中看不到12并返回该表包含2。
答案 0 :(得分:1)
使用FIND_IN_SET
上的column2
来搜索$ABC
的值。
示例 :
$ABC = 2;
WHERE FIND_IN_SET( '$ABC', RELPACE( column2, ' ', '' ) )
如果找到'$ABC'
中的值匹配,则返回正整数,否则返回'0'
。
其他样本 :
-- 0 (not found)
SELECT FIND_IN_SET( 2, '1, 2, 3' );
-- 2 (found at 2nd *position*)
SELECT FIND_IN_SET( 2, REPLACE( '1, 2, 3', ' ', '' ) );
-- 1 (found at 1st *position*)
SELECT FIND_IN_SET( 1, '1,2,3' );
请参阅 :