我的数据库表格如下:
ID | key | val_string | val_integer | val_timestamp
----------------------------------------------------
1 |Name | name1 | NULL | NULL
1 |Age | NULL | 10 | NULL
1 |DOB | NULL | NULL | 11-06-2004 11:33:00
2 |Name | name2 | NULL | NULL
2 |Age | NULL | 20 | NULL
2 |DOB | NULL | NULL | 10-06-1994 10:38:00
现在,我的应用程序接受用户的输入并返回ID
匹配。
例如,如果用户输入为10,那么我应该能够找到ID 1.类似地,如果用户输入是name2,我应该能够找到ID 2.
这里的问题是,所有的值字段都是不同的数据类型,即。 val_string是字符串类型,val_integer
是整数类型,依此类推。但是,我们不知道用户输入的类型。
答案 0 :(得分:1)
使用Cast将数据类型转换为字符串,这是CAST上的一些链接
http://www.1keydata.com/sql/sql-cast.html
http://msdn.microsoft.com/en-us/library/ms187928.aspx
希望这会有所帮助
如果不让我知道,我会看看我是否能找到另一种解决方案
答案 1 :(得分:1)
您可以添加另一个varchar列" searchstring"包含数据为字符串。如果字符串与数据完全相同,则视图可能是更好的解决方案。
create view foo as select id,val_string from mytable where val_string is not null
union select id,cast(val_integer as varchar) from mytable where val_integer is not null
union select id,cast(val_timestamp as varchar) from mytable where val_timestamp is not null;