【问题标题】:Join two SQL tables for %like% search.加入两个 SQL 表以进行 %like% 搜索。
【发布时间】:2014-02-10 14:08:05
【问题描述】:

如何从两个表中进行选择。并使用相同的“喜欢”语句搜索它们。

$sql = "SELECT * from user,info where name like '%$q%',title like '%$q%' order by id LIMIT 10";

这样我就可以把id order 中的数据放在一起了。

【问题讨论】:

  • 其中名称如 '%$q%' 和标题如 '%$q%'。试试这个
  • 我明白了:“订单子句中的列 'id' 不明确”
  • 这意味着两个表都有名为“id”的列。您应该指定表。喜欢ORDER BY users.id
  • 只从一张表中选择。
  • $sql = "SELECT * from user JOIN info on user.id=info.id where name like '%$q%',title like '%$q%' order by user.id LIMIT 10";

标签: php html sql select


【解决方案1】:

您应该以某种方式“连接”这两个表。指定合并行的条件。像 `user`.`id` = `info`.`userID`

$sql = "SELECT * FROM `user`, `info` WHERE `user`.`id` = `info`.`userID` 
AND `name` LIKE '%$q%' AND `title` LIKE '%$q%' ORDER BY `user`.`id` LIMIT 10";

【讨论】:

    【解决方案2】:

    希望对你有所帮助。

    $sql = "SELECT * FROM User AS U INNER  JOIN Info AS I ON U.ID = I.ID WHERE Name LIKE '%$q%' AND title LIKE '%$q%' ORDER BY U.ID LIMIT 10";
    

    请检查上述查询。如果你不想限制意味着你可以使用

    //按升序

    排序
    $sql = "SELECT * FROM User AS U INNER  JOIN Info AS I ON U.ID = I.ID WHERE Name LIKE '%$q%' AND title LIKE '%$q%' order by id ASC";
    

    //按降序

    排序
    $sql = "SELECT * FROM User AS U INNER  JOIN Info AS I ON U.ID = I.ID WHERE Name LIKE '%$q%' AND title LIKE '%$q%' order by id DESC";
    

    干杯...!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 2015-04-17
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多