为什么drupal在db_select()中使用Like而不是Equal运算符

时间:2015-04-23 17:59:27

标签: drupal drupal-7

function user_account_form_validate($form, &$form_state) {
    ...
    db_select('users')->fields('users', array('uid'))->condition('uid', $account->uid, '<>')->condition('name', db_like($form_state['values']['name']), 'LIKE')->range(0, 1)->execute()->fetchField()
    ...
}

此代码condition('name', db_like($form_state['values']['name']), 'LIKE')使用'赞'来比较名称字段,为什么不使用'='?

1 个答案:

答案 0 :(得分:1)

看起来您的LIKE语句可能包含“*”和“?”之类的通配符,这就是为什么它使用“LIKE”而不是“=”

顺便说一句,我刚刚了解到,在MySQL中,如果表/字段已经使用像utf8_general_ci(“_ci”表示“不区分大小写”)的校对定义,则“=”和LIKE运算符都不区分大小写。我一直以为=敏感而且LIKE不敏感,但看起来并非如此(双关语意图!)。