2014-11-01 60 views
-2

我有一个名称产品的表之一它的列名称是design_id其中设计ID是以逗号分隔格式保存像 - 5,4,6,51,85,65, 98,32,324,122,14,755,MySQL条款在哪里条件不起作用

我一定要找到具有设计标识98而对于这一点,我已经写了查询

结果
SELECT * FROM `products` where `design_id` IN (98) 

查询运行成功,但没有返回任何结果?

列类型是varchar。

+2

了'IN'操作符周围的其他方法 – 2014-11-01 11:21:46

+0

什么样的领域是什么?整数或字符串与逗号分离? – SMA 2014-11-01 11:21:49

+0

请填写完整代码.. – Ali 2014-11-01 11:22:46

回答

1

例子:

<?php 
$con=mysqli_connect("localhost","my_user","my_password","my_db"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname"; 

if ($result=mysqli_query($con,$sql)) 
    { 
    // Fetch one and one row 
    while ($row=mysqli_fetch_row($result)) 
    { 
    printf ("%s (%s)\n",$row[0],$row[1]); 
    } 
    // Free result set 
    mysqli_free_result($result); 
} 

mysqli_close($con); 
?> 
1

IN运算符遍历数据集,因此您必须反转查询。

SELECT * FROM table_name WHERE 98 IN column_name 

然而,在大多数数据库中,平等的opterator要快得多。

SELECT * FROM table_name WHERE column_name=98 
+0

我不能使用这种类型的动态部分,我们不假定我们必须创建多少列。我的列结构是5,45,455,38,26,75,45, – 2014-11-01 11:33:53

+0

SELECT * FROM table_name WHERE 98 IN(5 ,45,455,38,26,75,45) – 2014-11-01 11:35:16

1

是对SELECT * FROM table_name where column_name='98'

更好地使用,但是要存储:

尝试使用INSERT

INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);

不过是你想获取:

尝试使用mysql_fetch_row

例子:

<?php 
$con=mysqli_connect("localhost","my_user","my_password","my_db"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname"; 

if ($result=mysqli_query($con,$sql)) 
    { 
    // Fetch one and one row 
    while ($row=mysqli_fetch_row($result)) 
    { 
    printf ("%s (%s)\n",$row[0],$row[1]); 
    } 
    // Free result set 
    mysqli_free_result($result); 
} 

mysqli_close($con); 
?>