goma smile Posted November 15, 2012 Report Share Posted November 15, 2012 Iedomājieties tabulā lietotāji tiek norādīta kaut kāda kaut kam piederība import stilā.... piemēram user_girls - ",1,9,12," lietoājs ES user_girls - ",9,13,44," cits lietoājs vienāršā variantā ja nebūtu tā virkne ar komatiem varētu: SELECT id FROM users WHERE id IN (1,9,12) ; bet man vaig lai izvelk to lietotāja ID, ja viņam user_girls sakrīt ar manējo kādu no starpkomatu vērtībām Quote Link to comment Share on other sites More sharing options...
ezis Posted November 16, 2012 Report Share Posted November 16, 2012 Ne vella nesapratu tabulu uzbūvi! Paskaties kārtīgāk par IN iespējām un vēl FIND_IN_SET() Quote Link to comment Share on other sites More sharing options...
malinens Posted November 16, 2012 Report Share Posted November 16, 2012 Ieliec šeit: http://sqlfiddle.com/ Izskatās, ka tev vienmēr sanāk jaunu Ameriku atklāt =) Quote Link to comment Share on other sites More sharing options...
Kasspars Posted November 20, 2012 Report Share Posted November 20, 2012 (edited) MySQL ir funkcija POSITION(subtr in str) Pieņemsim, ka kolonu, kurā ir ID atdalīti ar komatiem sauc ids. Tad SQL būs šāds SELECT * FROM tabula WHERE POSITION(',1,' in ids) > 0 OR POSITION(',9,' in ids) > 0 OR POSITION(',12,' in ids) > 0 Obligāti jābūt komatiem pirms un pēc ID. Izskatās, ka tas kas taisījis to sistēmu jau ir paredzējis šādi selektēt, jo var redzēt, ka idu rinda sākas ar komatu :) Bet nu spalvains variants, it īpaši ja tur būs ļoti daudz ID. Šitas būs potenciāli lēns query Edited November 20, 2012 by Kasspars Quote Link to comment 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.