"Subscriptions" <[EMAIL PROTECTED]> wrote on 01/19/2006
06:13:06 PM:
> I'm not sure if this falls under a PHP topic or a MySQL topic, but I
have a
> table that contains a field that stores serialized data. Is there a way
to
> order a recordset by a piece of the serialized data? For example, if a
> field called "data" contains serialized data that looks like this:
>
> a:11:{s:7:"company";s:12:"Some Company";s:8:"jobtitle";s:17:"Assistant
> Manager";s:5:"phone";s:12:"123-456-7890";s:3:"fax";s:
> 12:"987-654-3210";s:7:"bf_time";i:1135221050;s:8:"bf_value";d:2.
> 416246843777560382449109965818934142589569091796875E-5;s:
> 17:"signup_email_sent";i:1;s:6:"status";a:2:{i:2;i:0;i:1;i:1;}s:
> 9:"is_active";i:1;s:9:"is_locked";s:0:"";s:11:"affiliation";s:1:"1";}
>
> is there a way to select a recordset ordered by "company"? Kind of
like,
> but not quite: SELECT * FROM mytable ORDER BY companyname
>
> (where the "companyname" is some function that pulls out the company
name)
>
> Jenifer
>
>
There is no native function compiled into the server that will pull out
just certain fields from a dump like that. However, you can manually
extract any part of any string through judicious use of the string
functions that are built in.
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
Depending on your version, you could create either a User-defined function
(UDF), a SQL Function, or a SQL Stored Procedure to help you do this.
Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine