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

PHP:如何设置查询以查看数据库表列是否包含特定变量,php,mysql,sql,Php,Mysql,Sql,我简化了以下PHP代码。对于查询,我需要做的是找出数据库表中是否有匹配项,其中column1=$field1,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

我简化了以下PHP代码。对于查询,我需要做的是找出数据库表中是否有匹配项,其中column1=$field1,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等,具体取决于有多少个复选框。所有数字

示例:12

如何编写查询以检查是否有column1=$field1的结果,column2是否包含$ABC

第2列希望“{$ABC}%”在哪里工作?我只是找到了一些例子。我以前从未用这个设置过查询,所以不确定它是如何工作的

注: 我需要确保如果$ABC=2。。。它在数据库中看不到12,并返回表中包含2。

使用第2列上的FIND_in_SET搜索$ABC的值

例如:

如果在“$ABC”中找到与值匹配的值,则返回正整数,否则返回“0”

其他样本:

参考:

返回第一个参数在第二个参数中的索引位置 论点
谷歌有很多-many@zerkms-我读了一篇关于多对多的小文章,其中讨论了作者和书籍等多个事物之间的关系,它说它可能需要第三个连接表,听起来比我这里需要的要复杂得多。我所需要做的就是使用column1=$field1和column2包含$ABC来查看是否有结果。我只是不知道如何写它,我也不知道我收集的东西会对多少人有益。这是说一个作者可以有多本书,一本书可以有多个作者,可以使用多对多来查询。这可以与另一个where子句结合使用吗?例如,从column1='的表中选择countid$字段1',并在_集合'$ABC',REPLACEcolumn2'中查找_,这是正确的格式吗?通过替换,我假设字符串需要是“,,,”而不是“,,”对吗?如果我将其存储方式更改为“,”,我是否可以取消替换,只使用集合“$ABC”中的FIND_,第2??1列。您还可以包括另一个条件,如AND等。2。如果值用逗号和空格分隔,则在_集中查找_失败。因此,将空格字符替换为空字符串。3.只要值是逗号分隔的,逗号后没有空格,就可以直接在列2中使用FIND_IN_SET。我在示例中也演示了这一点。您只需使用SELECT FIND_IN_SET'$ABC',columns2>0作为从column1=?'表中找到的值。最好是事先准备好的陈述。我的意思是,最好是在问题中解释需求,而不是在评论中讨论。但是,我对连接使用的回答是,是的,我们可以。
$ABC = 2;
WHERE FIND_IN_SET( '$ABC', RELPACE( column2, ' ', '' ) )
-- 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' );