如何从一半的数据中选择mysql表中的数据

时间:2014-11-25 05:15:05

标签: php mysqli

我从表单字段中获取数据。它包含

$city = "blr";
$field = "name";
$value= "mohai";


$sql = mysqli_query($con,"SELECT u.*, ad.*, ut.*, ci.*, st.* FROM user u, address ad, user_types ut, city ci, state st WHERE u.city_id=ci.id and ci.state_id=st.id and u.userId=ad.userId and 
    u.userType=ut.id and ci.city_name='".$city."' and u.".$field."='".$value."' and u.isDelete = '0'");

我使用上面的查询来获取所有数据。 我的问题是

用户表具有名称字段

例如:数据在用户表中 - > “mohaideen”

如果我给mohai这个名字字段。它应该过滤表中的数据。

如何为上述功能编写查询。

4 个答案:

答案 0 :(得分:0)

要搜索模式,请在sql中使用%符号。 你的查询将是下面的一些事情

select from Table_name where some_property like modhi%;

答案 1 :(得分:0)

您可以在查询中使用LIKE来匹配字符串

          $sql = mysqli_query($con,"SELECT u.*, ad.*, ut.*, ci.*, st.* FROM user u, address ad, user_types ut, city ci, state st WHERE u.city_id=ci.id and ci.state_id=st.id and u.userId=ad.userId and 
u.userType=ut.id and ci.city_name='".$city."' and u.".$field." LIKE '%".$value."%' and u.isDelete = '0'");

答案 2 :(得分:0)

要在查询中匹配通配符,可以使用LIKE子句

$sql = mysqli_query($con,"SELECT u.*, ad.*, ut.*, ci.*, st.* FROM user u, address ad, user_types ut, city ci, state st WHERE u.city_id=ci.id and ci.state_id=st.id and u.userId=ad.userId and 
u.userType=ut.id and ci.city_name='".$city."' and u.".$field." LIKE '%".$value."%' and u.isDelete = '0'");

答案 3 :(得分:0)

  

为此,您必须在查询中使用 LIKE 关键字

     

这是一个很好的例子

     

请参阅此link