my mysql table has a column structure that dumps various attributes which is separated by “;” for each of the element of a html file.
x
+-----------+------------------------------------+
| tag_id | attributes |
+-----------+------------------------------------+
| 1 |class:block_22;id:toc_id_35; |
| 2 |class:bloack_1000;id:12#4 |
+-----------+------------------------------------+
I want to write a query that selects the rows that have
1.id attribute that starts with #
2.id attribute that ends with #
3.id attribute that has # in between
the first query can be answered this way
SELECT * FROM table where attributes like "%id:#%";
I am not sure of how to handle the other two queries . Please give me some valuable insights.
Advertisement
Answer
These patterns should do what you want:
where attribute regexp 'id:#'
where attribute regexp 'id:[^;]*#(;|$)'
where attribute regexp 'id:[^;]+#[^;]+'