4
$string = 'US|UK|AUS|CA';

我正在尝试做这样的事情

SELECT username FROM table WHERE country (included in $string)

任何想法 ?

4

6 回答 6

2

假设您的字符串已被清理,我会将字符串分解为一个数组并用于implode创建语句。您不应该在字符串中存储多个值。这就是数组的用途。

$string = 'US|UK|AUS|CA';
$string = explode('|', $string);

$stmt = "SELECT ... country IN ('" . implode("', '", $string) . "')";

生产

SELECT ... country IN ('US', 'UK', 'AUS', 'CA')
于 2013-06-16T16:05:08.643 回答
2

只需用“|”爆炸你的字符串 获取数组,然后用“,”对该数组进行内爆以获取字符串。

$string = 'US|UK|AUS|CA';
$string=explode("|",$string);
$new_string=implode("', '",$string);

然后像这样运行查询

select username from table where country IN ('".$new_string."');
于 2013-06-16T16:41:29.993 回答
1

尝试这个 ..

SELECT username FROM table WHERE instr($string,country) > 0 ;
于 2013-06-16T16:01:18.903 回答
0

SELECT username FROM table WHERE country in('US', 'UK', 'AUS', 'CA')

于 2013-06-16T15:52:04.853 回答
0

如果它们会有所不同...您可以尝试使用数组

就像是:

$countries= array('a','b','c');

然后你去

$q="SELECT username FROM table WHERE country in(".implode("','",$countries).")

内爆将数组键转换为单个字符串,由,

于 2013-06-16T16:01:59.030 回答
-1

$string = 'UK' OR 'US' OR 'AUS' OR 'CA'

于 2013-06-16T16:12:49.407 回答