我有一个脚本,它向所有成员发送短信。首先,当我发送 SMS 时,我存储在 MySQL 数据库中,然后从不同的脚本中获取相同的信息并分批发送到我的 SMS 网关提供商。
Schedule sms 表格有以下列。
`id, to, senderid, message, unicode, status`
Unicode 有 3 个值 1,2,3
1 = english
2 = unicode
3 = flash
然后我在 PHP 中运行这样的查询
$sql = "SELECT `to`, `senderid`, `message` FROM `sch_sms` WHERE `status`='0' AND `unicode` = '1' LIMIT 1000
然后我创建 for 循环
并使用 cron 发送短信。
目前,我可能必须将上述 sql 查询编写 3 次并以不同的方式运行 3 次才能根据 unicode 条件发送短信。
我想知道的是,是否可以对所有 3 个不同的 unicode 值和单个 for 循环
进行一次查询,然后处理我的 php 短信功能。
如有任何建议,我们将不胜感激。
最佳答案
使用IN
查看代码是否在列中:
SELECT `to`, `senderid`, `message`, `unicode`
FROM `sch_sms`
WHERE `status`='0'
AND `unicode` IN('1','2','3')
LIMIT 1000
如果这些是该列中仅有的三个值,您可以完全放弃该条件:
SELECT `to`, `senderid`, `message`, `unicode`
FROM `sch_sms`
WHERE `status`='0'
LIMIT 1000
完成上述操作后,您可以设置一个 while 循环,您可以在其中使用 switch 语句来确定应如何发送消息(伪代码)-
while($row = <appropriate database function here>) {
switch ($row['unicode']) {
case 1:
// code for this send type
break;
case 2:
// code for this send type
break;
case 3:
// code for this send type
break;
}
关于php - PHP根据列条件处理MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31454294/