好吧,我不确定我做错了什么。我正在尝试选择数据库中的项目,这些项目在 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/