adam84 Posted July 16, 2007 Share Posted July 16, 2007 is there a way or a function in sql to retrieve only the first 100 words of a column or would I just use php to do that? Quote Link to comment https://forums.phpfreaks.com/topic/60275-solved-sql-text/ Share on other sites More sharing options...
Barand Posted July 16, 2007 Share Posted July 16, 2007 You can get the first X characters with the LEFT() function but I don't know of any such word-based MySQL function. Quote Link to comment https://forums.phpfreaks.com/topic/60275-solved-sql-text/#findComment-299799 Share on other sites More sharing options...
Wildbug Posted July 16, 2007 Share Posted July 16, 2007 You could determine the average number of characters in 100 words in your database, use the LEFT() function to get that many characters, and then use PHP to trim it, but there's no guarantee it'd be 100 words.... Quote Link to comment https://forums.phpfreaks.com/topic/60275-solved-sql-text/#findComment-299803 Share on other sites More sharing options...
Wildbug Posted July 16, 2007 Share Posted July 16, 2007 I just learned something. Behold, the SUBSTRING_INDEX(str,delim,count)function! "Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned." Let count be the number of words you are interested in returning, and as long as they are seperated by a space, you'll get that many words. Example: mysql> SELECT id,title,SUBSTRING_INDEX(content,' ',10) FROM newscontent; +-----+--------------+------------------------------------------------------------------+ | id | title | SUBSTRING_INDEX(content,' ',10) | +-----+--------------+------------------------------------------------------------------+ | 001 | Title One | For example, right now, the article that's being displayed fills | | 002 | Second Title | As you can see, this limits the string length by | | 003 | LENGTH() | Returns the length of the string str, measured in bytes. | +-----+--------------+------------------------------------------------------------------+ 3 rows in set (0.00 sec) Quote Link to comment https://forums.phpfreaks.com/topic/60275-solved-sql-text/#findComment-299927 Share on other sites More sharing options...
adam84 Posted July 17, 2007 Author Share Posted July 17, 2007 That awesome thanks Quote Link to comment https://forums.phpfreaks.com/topic/60275-solved-sql-text/#findComment-299956 Share on other sites More sharing options...
Barand Posted July 17, 2007 Share Posted July 17, 2007 I just learned something. Me too. Missed that one tucked away at the end of the SUBSTRING alternatives in the manual. Good find. Quote Link to comment https://forums.phpfreaks.com/topic/60275-solved-sql-text/#findComment-300552 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.