3

有人可以提供一些帮助。我有一个标准的 SQL 命令如下

$SQL = "SELECT * FROM table WHERE Date > :FromDate AND Date < :EndDate";

这工作正常,但返回不相关的行。我必须使用 php 循环并通过它们使用if语句过滤掉所需的记录。

$col1 = $col1["colVal"]

if(strstr($col1, "ABC") !== FALSE) {
    // can be used on page
}

有没有办法做到这一点,sql所以我只返回所需的结果?我需要它来检查col值字符串是否仅包含第一个字母为ABC. 下面的sql工作吗?

$string = "ABC";

$SQL = "
SELECT * FROM table 
  WHERE 
    Date > :FromDate 
    AND Date < :EndDate 
    AND col1 LIKE $string
";
4

1 回答 1

3

您的使用strstr方式与substr,其中字符串包含ABC.

SELECT *
    FROM table
    WHERE Date > :FromDate
    AND Date < :EndDate
    AND col1 LIKE '%$string%';

如果要搜索第一个字符为 的字符串ABC,请使用:

SELECT *
    FROM table
    WHERE Date > :FromDate
    AND Date < :EndDate
    AND col1 LIKE '$string%';

stristr,然而,这将是一个完全不同的故事。

于 2013-08-20T19:54:11.823 回答