从表中只获取某些数据

时间:2010-04-16 09:04:10

标签: php mysql

我有一个格式为

的字段
5551112391^HUMAN^HUMAN-800-800^6-main^^

我如何只在字符5551112391之前抓取数字^

你会用正则表达式吗?

3 个答案:

答案 0 :(得分:2)

你可以利用爆炸:

$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$arr = explode('^',$var);
$num = $arr[0]; 

使用正则表达式:

$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
if(preg_match('/^(\d+)/',trim($var),$m)){
   $num = $m[1]; 
}

答案 1 :(得分:1)

正则表达式矫枉过正,很好......

简单的转换为int怎么样?如果数字在数据的开头,那么将完全正常工作。并且肯定比正则表达式快......

$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$num = (int)$var;

http://www.php.net/manual/en/language.types.type-juggling.php

答案 2 :(得分:0)

你是以完全错误的方式做到的 您将mysql数据库视为平面文本文件。但事实并非如此。

  1. 所有这些字段必须分开并存储在不同的列中。
  2. 要仅从表中获取某些数据,您不应选择所有行,然后逐个进行比较,但让数据库为您执行此操作:

    SELECT * FROM table WHERE number = 5551112391