选择字符串中是否包含值

时间:2013-06-16 15:49:49

标签: php sql

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

我正在尝试做这样的事情

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

有什么想法吗?

6 个答案:

答案 0 :(得分:2)

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

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

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

可生产

SELECT ... country IN ('US', 'UK', 'AUS', 'CA')

答案 1 :(得分:2)

用“|”爆炸你的字符串获取数组,然后使用“,”将该数组内爆以获取字符串。

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

然后就像这样运行

select username from table where country IN ('".$new_string."');

答案 2 :(得分:1)

试试这个..

SELECT username FROM table WHERE instr($string,country) > 0 ;

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

类似的东西:

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

然后你去找

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

implode会将数组键转换为由,

分隔的单个字符串

答案 5 :(得分:-1)

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