1

WHERE使用该功能时如何对条件进行分组selecting?我知道如何用标准 SQL 编写它,但我无法使用 ezSQL 解决这个问题。

我想要什么

SELECT user_id, user_password, user_password_key
FROM users
WHERE (user_login = $userData OR user_email = $userData) AND user_status=1

我试过的

$db->selecting('users', 'user_id, user_password, user_password_key',
               where(eq('user_status', '1', _AND)),
               where(eq('user_login', $userData, _OR ), eq('user_email', $userData )));
$db->selecting('users', 'user_id, user_password, user_password_key',
               where(eq('user_status', '1')),
               where(eq('user_login', $userData, _OR ), eq('user_email', $userData )));
$db->selecting('users', 'user_id, user_password, user_password_key',
               $db->where(eq('user_login', $userData, _OR ), eq('user_email', $userData )),
               $db->where('user_status', '1'));
$db->selecting('users', 'user_id, user_password, user_password_key',
               eq('user_login', $userData, _OR ), eq('user_email', $userData ),
               $db->where('user_status', '1') );

如果我删除 的条件,它会起作用user_status,但是当它在那里时,它只会返回NULL

从https://github.com/ezSQL/ezSQL#example-for-using-prepare-statements-indirectly-with-above-shortcut-sql-methods复制的示例

4

1 回答 1

0

现在可以使用 v4 使用以下代码

$db->selecting(
  'users',
  'user_id, user_password, user_password_key',
  where(
    eq('user_status', '1'),
    grouping(
      eq('user_login', $userData, _OR),
      eq('user_email', $userData)
    )
  )
);

有关GitHub Wiki的更多详细信息

于 2020-09-08T01:42:51.597 回答