PHP:如何设置Query以查看数据库表列是否包含特定变量

时间:2014-02-21 05:14:12

标签: php mysql sql

我已经获得了以下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。

1 个答案:

答案 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' ); 

请参阅