mysql如何使用查询获取varchar字段中的数据类型。因为它可以将任何数据类型保存为字符串

时间:2010-09-06 06:58:02

标签: php mysql

  

我的第二句话的原因   问题“因为它可以容纳任何数据类型   作为字符串。“是提出问题   从它的角度来看更具体   人们会真正得到实际的   在回答答案之前的图片。

我在发布并获得this question的回复后问过这个问题。 根据我计划以这种方式做出的回应。我只是在这里提到它,如果你有时间,那么你可以通过。因为此后提出了当前的问题。

目前的问题如下......

  1. 我有一个varchar数据类型的字段。
  2. 默认为null。
  3. 它将保留null或字符串(这是图像的文件名)或上传图像时的时间戳值。
  4. 如果它为null或者它是timestamp值的整数值,那么我想显示no-image.jpg。
  5. 如果它是一个字符串,那么它就是实际图像,所以我将显示该图像。
  6. 如果该字段包含null数据类型,则表示尚未上传任何图像。
  7. 如果是时间戳值,则用户仍在操纵他上传的图像。
  8. 如果是字符串,那么就是准备显示的实际图像。
  9. 上传仅由一个人完成。
  10. 所以,我正在执行一个查询,并且我想查找varchar值是null还是整数或字符串。

    我不想在php中做更多的计算。我希望sql中应该有一个选项来做到这一点。

    如果你觉得你想要给出答案(通过在sql中解决它或在php中解决它)那么那太好了。

    这是我计划在php中做的事情。

    $val = $rs['filename'];
    if(is_null($val)) // display a noimage.jpg
    else if(is_numeric($val)) // display a noimage.jpg
    else // display the actual image.
    

    我在sql中的期望是调用一个函数,如果是null或整数,那么我将使用as关键字和'noimage.jpg'否则作为实际图像......

    选择somefunction(filename)作为...... 如果值为null或整数,则应该保留noimage.jpg。 如果值是一个字符串,那么它应该保存actualimagename。

    希望我已经说清楚了。

1 个答案:

答案 0 :(得分:1)

为什么不在表中添加另一列来指定该字段是什么?并不是说这会使听起来像是一个非常糟糕的设计更好,但它比试图找出你首先存储的东西更安全。