php - 使用字符串长度作为条件选择一条记录。尝试过 LEN()、LENGTH() 和 CHAR_LENGTH

标签 php mysql sql pdo

好吧,我不确定我做错了什么。我正在尝试选择数据库中的项目,这些项目在 script_signed 字段中保存的不仅仅是一个字符,还有其他 2 个条件(请参见下面的代码)。 它没有获得我需要的 4000 个项目,而是几乎忽略了长度条件,因此我最终得到的脚本按照其他两个条件给出了 17k 条记录。

 $getSale = $connection->prepare("SELECT `script_assigned` FROM `transactions` WHERE CHAR_LENGTH('script_assigned') >  ? AND `ClientDealerID` = ? AND `file_type` = ?");
    $getSale->execute(array(1,"STORE","SL"));
    $gotSale = $getSale->fetchAll(PDO::FETCH_ASSOC);
    $getSale = null; //Release
    print_r($gotSale);

我尝试过的另一件事是,它在 SQL 控制台中工作,但由于某种原因在我的脚本中不起作用(请参见下面的代码)。

$getSale = $connection->prepare("SELECT `script_assigned` FROM `transactions` WHERE `script_assigned` >  ? AND `ClientDealerID` = ? AND `file_type` = ?");
        $getSale->execute(array(1,"STORE","SL"));
        $gotSale = $getSale->fetchAll(PDO::FETCH_ASSOC);
        $getSale = null; //Release
        print_r($gotSale);

最佳答案

如果你使用

LENGTH(script_assigned) > 0

它应该可以工作。但是,您可能会获得将 script_signed 设置为空白字符序列的记录。为了解决这个问题

LENGTH(TRIM(script_assigned)) > 0

关于php - 使用字符串长度作为条件选择一条记录。尝试过 LEN()、LENGTH() 和 CHAR_LENGTH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33557039/

相关文章:

php - 使用供应商商店名称 (Dokan) 在 WooCommerce 中自定义电子邮件主题

php - 如何在 PHP mail() 函数中包含对文件的调用

MySQL:查找行的最佳方式,其中关联列表与给定列表匹配

mysql - SQL 创建新表并从另一个表插入数据

sql - 修改SQL Server中的默认值

asp.net - 已成功与服务器建立连接,但在登录前发生错误

php - 如何在 PHP 中检查变量是字母还是数字?

php - 仅显示数组未检索到的值

java - 使用 JDBC 更新数据库中的记录以等于用户输入?

PHP MYSQL 变量返回错误